wkdxz 发表于 2022-5-30 09:13

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

本帖最后由 wkdxz 于 2022-5-30 09:25 编辑

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

[*]切换文本软件
[*]选中文本(仔细找下一行)
[*]Ctrl C
[*]切换软件
[*]Ctrl V


有时候步骤2还容易出错,容易多选换行符,或者漏选文本。今天分享的小工具,就是我针对这种情况写的,原理很简单,操作也简单。
-----------------------------------------------
使用脚本后执行步骤:

[*]复制所有要粘贴的文本
[*]点开脚本
[*]切换软件
[*]Ctrl V
[*]切换到脚本
[*]按任意键(文本会按顺序逐行复制到剪贴板)

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

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

#按行分割剪贴板,如果不是空行,就加入列表
jtb =


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

wkdxz 发表于 2022-6-22 11:40

本帖最后由 wkdxz 于 2022-6-22 11:44 编辑

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

from os import system as run

run('title 逐行复制文本 - Py版')
from pyperclip import copy, paste

#按行分割剪贴板,如果不是空行,就加入列表
jtb =


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)
    print(f'\n已复制[ {n}/{len(jtb)} ]:{jtb} ', 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 09:34
用不明白~

发个操作演示

小秒丶 发表于 2022-5-30 10:14

wkdxz 发表于 2022-5-30 09:49
发个操作演示

谢谢明白了,估计得打包出来好用{:1_919:}

怜渠客 发表于 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的~;www

okmad 发表于 2022-5-30 11:48

支持下,等楼主更新
页: [1] 2
查看完整版本: [原创源码] [Python]复制大堆文本后,逐行复制到剪贴板。