python - 压缩错误 : Invalid command arguments (cannot write zip file to terminal)

标签 python python-2.7 zip

我正在学习 A Bite of Python 这本书。输入书上的例子后

import os
import time

# 1. The files and directories to be backed up are
# specified in a list.
# Example on Windows:
# source = ['"C:\\MY Documents"', 'C:\\Code']
# Example on Mac OS X and Linux:
source = ['/home/username/Downloads/books']
# Notice we had to use double quotes inside the string
# for  names with spaces in it.

# 2. The backup must be stored in a 
# main backup directory
# Example on Windows:
# target_dir = 'E:\\Backup'
# Example on Mac OS X and Linux:
target_dir = '/home/username/Downloads/backup'
# Remember to change this to which folder you will be using

# 3. The files are backed up into a zip file.
# 4. The name of the zip archive is the current date and time
target = target_dir + os.sep + \
        time.strftime('%Y%m%d%H%M%S') + '.zip'

# Create target directory if it is not present
if not os.path.exists(target_dir):
    os.mkdir(target_dir)    # make directory

# 5. We use the zip commond to put the files in a zip archive
zip_command = "zip - r {0} {1}".format(target, ' '.join(source))

# Run the backup
print "Zip command is:"
print zip_command
print "Running:"
if os.system(zip_command) == 0:
    print 'Successful backup to', target
else:
    print 'Backup FALIED'

我收到一条消息 zip 错误:命令参数无效(无法将 zip 文件写入终端) 我无法弄清楚哪里出了问题,我在本书中输入了相同的代码。 有谁知道为什么会这样吗?

最佳答案

问题出在您创建的 zip 命令中,-r 之间有一个额外的空格。示例 -

zip_command = "zip - r {0} {1}".format(target, ' '.join(source))
                    ^
Notice the extra space

-r 之间不能有空格。示例 -

zip_command = "zip -r {0} {1}".format(target, ' '.join(source))

此外,我想建议,最好使用 subprocess.call() 而不是 os.system ,为它提供一个参数列表命令。示例 -

import subprocess
zip_command = ['zip','-r',target]
for s in source:
    zip_command.append(s)
subprocess.call(zip_command)

这样会更容易看到错误。

关于python - 压缩错误 : Invalid command arguments (cannot write zip file to terminal),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32302705/

相关文章:

python - 在忽略边界的颜色反卷积后识别正像素

python - Django:如何正确制作购物车? (数组字符串字段)

python - Flask Python,试图将列表或字典返回给 Ajax 调用

python - 程序退出时如何删除文件?

swift - 使用 ZIPFoundation,如何将文件添加到所需路径的存档中?

c# - 如何将 zip 文件发送到 ASP.NET WebApi

Tensorflow:从 zip/tar 文件列表中读取许多图像(或任何文件)

python - Python 中的哥德巴赫猜想

python 映射/减少 : emit multiple keys values from single map lambda

python - 在python中将行号添加到字符串中