【问题标题】:How to copy a file with a timestam [duplicate]如何复制带有时间戳的文件[重复]
【发布时间】:2019-08-03 17:58:41
【问题描述】:

我想将当前时间保存在一个变量中(我可以这样做) 然后我想将文件 a 复制到文件 b 并将时间戳包含在文件 b 中。 像这个副本 file1 file1.08-02-2019 (像文件的备份) 除非我添加时间戳,否则我可以很好地复制文件?

我可以毫无问题地进行复制。我只是无法让副本与 dest 文件名中的时间戳变量一起使用

import shutil
import datetime
import os

now = datetime.datetime.now()
timestamp = str(now.strftime("%Y%m%d_%H:%M:%S"))

os.system('copy C:\\Users\\kwhol\\my_python_code\\twp_pid_ctrl, C:\\Users\\kwhol\\my_python_code\\twp_pid_ctrl_backup'+'timestamp')

它将时间戳作为字面意思,时间戳是在目标文件名中,而不是时间戳变量的实际值

【问题讨论】:

  • 在 Windows 中,不允许将 : 作为文件名的一部分,仅作为驱动器分隔符 ...
  • 您将文本 'timestamp' 添加到您的文件名 - 而不是您的变量内容
  • @PatrickArtner 我认为您错误地将其标记为重复。请仔细阅读问题。 “我可以毫无问题地进行复制。我只是无法让副本与目标文件名中的时间戳变量一起使用”。因此,在 python 中引用 how to rename a file 或 how to copy a file 上的帖子对 OP 并不公平。请删除重复的标记。
  • @five 我添加了更多重复项 - 大约有 5 到 10 个其他人在回答。可能最接近这个用户问题(在使用 variable 而不是变量名的字符串修复后是Adding timestamp to a file in PYTHON。所有解决了根本问题的方法是告诉他如何修复他的代码以创建文件里面有时间戳。如果不是重复的,这可能是一个“因拼写错误而关闭”的问题,根本不应该有答案......

标签: python


【解决方案1】:

文件名中不能有冒号。使用其他分隔符,例如句号。 还有C:\\Users\\kwhol\\my_python_code\\twp_pid_ctrl_backup'+'timestamp'

timestamp 不应该用引号引起来,因为这使它成为字符串文字。

【讨论】:

    【解决方案2】:

    你可以使用类似下面的东西。确保格式化您的时间戳 适当的,以便操作系统可以在文件名中支持它。

    import shutil 
    import datetime 
    import os
    
    now = datetime.datetime.now() timestamp =
    str(now.strftime("%Y_%m_%d_%H_%M_%S"))
    
    src = "C:\\Users\\kwhol\\my_python_code\\twp_pid_ctrl"
    dest = "C:\\Users\\kwhol\\my_python_code\\twp_pid_ctrl_backup_"+timestamp
    shutil.copy(src, dest)
    

    或者最后 3 行可以用你正在做的方式替换(我不确定它是否真的复制):

    os.system('copy C:\\Users\\kwhol\\my_python_code\\twp_pid_ctrl, C:\\Users\\kwhol\\my_python_code\\twp_pid_ctrl_backup_'+timestamp)
    

    【讨论】:

    • 不会工作,windows下非法文件名。
    • 取决于时间戳格式。我想说不要使用 : 这样的字符,而是使用 _ 作为小时-分钟-秒分隔符。
    猜你喜欢
    • 2017-01-13
    • 1970-01-01
    • 1970-01-01
    • 2022-12-02
    • 2015-08-03
    • 2015-09-12
    • 1970-01-01
    • 2011-05-16
    • 1970-01-01
    相关资源
    最近更新 更多