【问题标题】:Os.system() - Changing zip command to give a different file name for various datetimesOs.system() - 更改 zip 命令为不同的日期时间提供不同的文件名
【发布时间】:2020-03-03 18:50:00
【问题描述】:

我正在尝试压缩一个带有添加到创建的 zip 文件夹中的日期时间戳的目录。我该怎么做呢?我尝试过这样的事情:

import datetime   
import os
backup_zip = True
    if backup_zip:
        dt = ('{:%Y%m%d_%H%M}'.format(datetime.datetime.now()))
        name = dt + "folder.zip"
        os.system("zip -r" + name +  "/home/olb/CPL")

这可行,但没有日期时间戳:

# os.system("zip -r folder.zip /home/olb/CPL")

非常感谢您的帮助

【问题讨论】:

    标签: python zip os.system


    【解决方案1】:

    您需要确保名称周围有空格。

    使用您当前的实现,提供给os.system() 的参数是:

    zip -r<name>/home/olb/CPL
    

    什么时候应该是:

    zip -r <name> /home/olb/CPL
    

    最简单的解决方法是在前面的引号之前添加一个空格,在下面的引号之后添加一个空格:

    os.system("zip -r " + name +  " /home/olb/CPL")
    

    如果你使用 Python 3.6+,你可以使用formatted string literals:

    name = f"{dt}folder.zip"
    command = f"zip -r {name} /home/olb/CPL"
    

    这比使用+ 处理引号和连接更容易处理。

    【讨论】:

      【解决方案2】:

      您必须像这样正确格式化command line command

      import datetime
      import os
      
      backup_zip = True
      if backup_zip:
          dt = '{:%Y%m%d_%H%M}'.format(datetime.datetime.now())
          name = dt + "folder.zip"
          os.system("zip -r " + name +  " /home/olb/CPL")
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-10-20
        • 2020-08-10
        • 2013-02-12
        • 1970-01-01
        • 2015-10-03
        • 2022-06-14
        • 1970-01-01
        • 2018-01-02
        相关资源
        最近更新 更多