Python复制文件但保留原始文件。
Python复制文件但保留原始文件。
这个问题已经有了答案 :
Python 问题。
我想要复制一个名为 randomfile.dat 的文件,并在复制文件的末尾添加时间戳。
然而,我也想保留原始文件。因此,在我的当前目录中(不移动文件)我将会得到:
randomfile.dat
randomfile.dat.201711241923(或者时间戳格式是什么...)
有人能提供建议吗?我的任何尝试都导致我丢失原始文件。
admin 更改状态以发布 2023年5月20日
这样怎么样?
$ ls $ touch randomfile.dat $ ls randomfile.dat $ python [...] >>> import time >>> src_filename = 'randomfile.dat' >>> dst_filename = src_filename + time.strftime('.%Y%m%d%H%M') >>> import shutil >>> shutil.copy(src_filename, dst_filename) 'randomfile.dat.201711241929' >>> [Ctrl+D] $ ls randomfile.dat randomfile.dat.201711241929
当你打开文件时,你可以指定以"r"
、"w"
或"a"
的方式打开它。"a"
将追加到文件中(r - 读,w - 写)。
所以:
with open("randomfile.dat", "a") as file: file.write("some timestamp")
或者,如果你想保留这个原始文件并复制一份,那么你需要打开这个文件,复制它,然后打开一个新文件并向新文件写入。
# empty list to store contents from reading file file_contents = [] # open file you wish to read with open('randomfile.dat', 'r') as file: for line in file: file_contents.append(line) # open new file to be written to with open('newfile.txt', 'w') as newfile: for element in file_contents: newfile.write(element) newfile.write("some timestamp")
任何换行符(\n)将由读取器保留,并且它基本上按行读取文件。然后,逐行向一个新文件写入。循环结束后,添加时间戳,以便它写入文件的底部。
编辑:刚意识到OP希望做一些略微不同的事情。这仍然可以工作,但你需要打开附加时间戳的新文件:
import datetime datestring = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S') with open('newfile' + datestring + '.txt', 'w') as newfile: for element in file_contents: newfile.write(element)
但如其他人所提到的,你可能更好地使用一个模块来完成这个任务。