保存新文件并在每次运行程序时重复?

Saving new file and repeat each time the program is run?

提问人:vee2gee 提问时间:8/29/2023 更新时间:9/23/2023 访问量:13

问:

所以我正在尝试编写我自己的程序,如果你甚至可以这样称呼它的话。我正在使用 pyautogui、time 和 os 模块 atm,一切都是花花公子。我面临的问题是我正在打开记事本,粘贴我的内容并尝试在每次运行时将其保存为新文件。

我可以使用 pyautogui 来查找要访问的位置并单击,但我认为我可以省去麻烦,只需将 Web 中的内容粘贴到文本文件中并保存,每次运行脚本时都会重复。

我得到了以下内容:

os.system('start notepad.exe') 
time.sleep(5)
pyautogui.hotkey(['ctrl', 'v'])
pyautogui.hotkey(['ctrl', 's'])

我想我能做的是:

file = open('Overload.txt', 'x')
pyautogui.hotkey(['ctrl', 'v'])
pyautogui.hotkey(['ctrl', 'v']) 

我知道我必须在任何一个之前放置一个 for 或 while 循环,但不知道我应该在哪里添加一个函数,它再次运行而不会覆盖旧文本,而是保存一个新的文本文件,例如具有相同名称的备份,例如,Overload(1).txt 并注明日期。

TLDR:尝试从 Web 创建重复相同文件名但不替换的文本备份文件。像文件日志一样排序。

我 Googlfu 这个问题并通读了一些,但要么是不同的语言,我刚刚开始学习,要么只是提到我不需要使用的 x、w、r、a+ 的基础知识。

python-3.x 文件 操作系统

评论


答:

0赞 vee2gee 9/23/2023 #1

这是解决方案:

pyautogui.click(txtBox)
pyautogui.hotkey('ctrl', 'a')
pyautogui.hotkey('ctrl', 'c')

time.sleep(5)

filename = "Overload.txt"
counter = 1

while os.path.exists(filename):
    filename = f"Overload.{counter}.txt"
    counter += 1

with open(filename, "w", encoding="utf-8") as newfile:
    newfile.write(pyperclip.paste())  

评论

0赞 vee2gee 9/23/2023
对不起,如果您不理解代码并且/或有疑问,我没有评论代码。请让我知道或询问。