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

问题描述 投票:0回答:2

我正在尝试将目录时间戳压缩到创建的zip文件夹中。我将如何去做呢?我已经尝试过这样的事情:

import datetime    
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
2个回答
0
投票

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

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

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

应改为:

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

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

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

如果使用的是Python 3,则可以使用formatted string literals

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

与使用+处理引号和串联相比,这更容易处理。


0
投票

您必须像这样正确格式化命令行命令:

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")
© www.soinside.com 2019 - 2024. All rights reserved.