Os.system() - 更改 zip 命令以针对不同的日期时间提供不同的文件名

Os.system() - Changing zip command to give a different file name for various datetimes

我正在尝试压缩一个目录,并将日期时间戳添加到创建的 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")

非常感谢您的帮助

您需要确保名称周围有 space。

对于您当前的实施,提供给 os.system() 的参数是:

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

什么时候应该是:

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

最简单的修复方法是在前面的引号前添加 space 并在下面的引号后添加 space:

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"

与使用 +.

处理引号和连接相比,这更容易处理

您必须像这样正确地格式化 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")