Python使用pyperclip如何复制循环所有字符串输出而非仅最后一项
问题原因
range(1, len(numbers))为左闭右开区间,你定义的numbers长度为3,实际循环只会执行i=1、i=2两次,缺少i=3的执行逻辑- 每次循环都调用
copy()覆盖剪贴板内容,最终剪贴板只会保留最后一次写入的内容,因此只能拿到最后一轮循环的输出
修复方案
先拼接所有需要的内容,再一次性写入剪贴板即可,示例代码如下:
from pyperclip import copy numbers = [1,2,3] full_text = "" # 直接遍历列表元素,避免区间计算错误 for num in numbers: full_text += f"Hi {num}\n" full_text += f"Hello {num}\n" copy(full_text) # 可打印校验内容 print(full_text)
如果坚持使用range写法,将循环条件改为for i in range(1, len(numbers)+1):即可。
执行后剪贴板内容与你需要的输出完全一致:
Hi 1 Hello 1 Hi 2 Hello 2 Hi 3 Hello 3
内容的提问来源于stack exchange,提问作者Henul
相关产品推荐
相关产品推荐

