Python复制文件,但保持原来的
这个问题在这里已经有了答案:
这个怎么样?
$ 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
from shutil import copy
from time import time
fn = 'random.dat'
copy(fn, fn+'.'+str(time()))
当您打开文件时,您可以指定如何使用"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)
但正如其他人所说,你可能会为此更好地使用模块。
链接地址: http://www.djcxy.com/p/42333.html