Python复制文件,但保持原来的

这个问题在这里已经有了答案:

  • 如何在python中复制文件? 14个答案

  • 这个怎么样?

    $ 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

    上一篇: Python copy file but keep original

    下一篇: Copying an image to some directory