吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 2535|回复: 15
收起左侧

[Python 原创] [原创源码] [Python]复制大堆文本后,逐行复制到剪贴板。

[复制链接]
wkdxz 发表于 2022-5-30 09:13
本帖最后由 wkdxz 于 2022-5-30 09:25 编辑

不知道XDM有没有遇到这样的场景,有时候需要把大量文本(比如:地址、电话等)从文本中,一行行的复制到另一个软件里面。 需要频繁地循环执行以下5个步骤:
  • 切换文本软件
  • 选中文本(仔细找下一行)
  • Ctrl C
  • 切换软件
  • Ctrl V


有时候步骤2还容易出错,容易多选换行符,或者漏选文本。今天分享的小工具,就是我针对这种情况写的,原理很简单,操作也简单。
-----------------------------------------------
使用脚本后执行步骤:
  • 复制所有要粘贴的文本
  • 点开脚本
  • 切换软件
  • Ctrl V
  • 切换到脚本
  • 按任意键(文本会按顺序逐行复制到剪贴板)

1、2步骤执行后,只需要循环执行3~6个步骤就可以了。拖选文本,查找下一行文本,复制文本的工作,只需要按一下空格就完成了。在处理只有几行,或十几行文本的时候,能很快处理完。
Python脚本代码:
使用了一个三方库,使用PIP直接安装: pip install pyperclip
[Python] 纯文本查看 复制代码
from os import system as run

run('title 逐行复制文本 - By 52pojie_wkdxz')
from pyperclip import copy, paste

#按行分割剪贴板,如果不是空行,就加入列表
jtb = [i.strip() for i in paste().split('\n') if i.strip()]


def kong(x):  #至少留3个空格(4-默认一个空格)
    n = 4 - len(str(x))
    return ' ' * n


#打印所有剪贴板内容
def printJTB():
    run('cls')
    for x, y in enumerate(jtb, start=1):
        print(f'{x} >{kong(x)}{y}')


n = 1
for i in jtb:
    printJTB()  #打印所有剪贴板内容
    copy(i)
    print(f'\n已复制[ {n}/{len(jtb)} ]:{i} ', end='')
    if n == len(jtb):
        run('color 0a')
        print(f'\n\n\n复制完毕,按任意键退出. . .', end='')
    run('pause>nul')
    n += 1



最初我写的是bat,后来觉得不够直观,换成了python,如果处理简单文本,不想安装Python,可以使用下面的bat
@echo off
echo.
::把需要逐行复制的文本,放在下面,文本不能有空格
for %%a in (

236307642
236395548
26043022

)do echo %%a|clip&set /a a+=1&echo ^> 已复制 %%a ...&title %%a 已复制&pause>nul
color 0a
echo.
echo.
echo ^>^> %a%行文本已复制完。
echo.
echo.&pause

免费评分

参与人数 4吾爱币 +7 热心值 +4 收起 理由
lunker2019 + 1 + 1 用心讨论,共获提升!
苏紫方璇 + 5 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
wanfon + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
MXGT + 1 热心回复!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| wkdxz 发表于 2022-6-22 11:40
本帖最后由 wkdxz 于 2022-6-22 11:44 编辑

最近小改了一下 有兴趣的拿走

[Python] 纯文本查看 复制代码
from os import system as run
 
run('title 逐行复制文本 - Py版')
from pyperclip import copy, paste
 
#按行分割剪贴板,如果不是空行,就加入列表
jtb = [i.strip() for i in paste().split('\n') if i.strip()]
 
 
def kong(x):  #至少留3个空格(4-默认一个空格)
    n = 4 - len(str(x))
    return ' ' * n
 
 
#打印所有剪贴板内容
def printJTB(i):
    run('cls')
    for x, y in enumerate(jtb, start=1):
        star = '->' if x == i else f'{x} >'
        print(f'{star}{kong(star)}{y}')
 
 
for n, i in enumerate(range(1, len(jtb) + 1), start=1):
    printJTB(i)  #打印所有剪贴板内容
    copy(jtb[i - 1])
    print(f'\n已复制[ {n}/{len(jtb)} ]:{jtb[i-1]} ', end='')
    if n == len(jtb):
        run('color 0a')
        print(f'\n\n\n复制完毕,按任意键退出. . .', end='')
    run('pause>nul')
zhcj66 发表于 2022-5-30 16:59
wkdxz 发表于 2022-5-30 11:55
确实可以,行数多了用AHK搭配自动操作。如果只有几行临时使用的话,就直接用脚本。

AHK  是什么东西
FcSp 发表于 2022-5-30 09:25
小秒丶 发表于 2022-5-30 09:34
用不明白~
 楼主| wkdxz 发表于 2022-5-30 09:49

发个操作演示

操作演示

操作演示
小秒丶 发表于 2022-5-30 10:14

谢谢明白了,估计得打包出来好用
怜渠客 发表于 2022-5-30 10:16
为何不一次性复制,什么情景下需要一行一行的复制
就是那个秋 发表于 2022-5-30 10:29
还可以再精简步骤
a2523188267 发表于 2022-5-30 10:41
一般我是用bat处理
kk159 发表于 2022-5-30 11:07
a2523188267 发表于 2022-5-30 10:41
一般我是用bat处理

他就是调用bat的~
okmad 发表于 2022-5-30 11:48
支持下,等楼主更新
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 07:02

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表