Python中运行os.system返回1

刚刚写了个备份文件的程序,但是os.system一直返回1,有人知道怎么解决吗

代码如下

import os

import time

source = ["'E:\itcast'"]

target_dir = 'E:\python workspace'

target = target_dir + os.sep + \

time.strftime('%Y%m%d%H%M%S') + '.zip'

if not os.path.exists(target_dir):

os.mkdir(target_dir)

zip_command = 'zip -r {0} {1}'.format(target,

' '.join(source))

print('Zip command is:')

print(zip_command)

print('Running:')

if os.system(zip_command) == 0:

print('Successful backup to', target)

else:

print('Backup FAILED')

返回
图片描述

回答:

最后改成功了,好像是os.system与空格的问题,后来我舍弃了这个方法,改用了subprocess中的call方法就行了还改了target的路径,修改了的代码如下

zip_command = "C:\\Program Files (x86)\\GnuWin32\\bin\\zip.exe -r {} {}"\

.format(target, ' '.join(source))

if subprocess.call(zip_command) == 0:

print('Successful backup to', target)

else:

print('Backup FAILED')

回答:

楼主最好在路径前后加上双引号再试试

zip -r "E\python workspace\xxx.zip"  "E:\itcast"

回答:

路径格式化字符串最好都写成'"{}"',防止空格导致的单个路径被认为是多个参数:

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

回答:

路径最好用 os.path.join来组合
是你的第一个路径中有空格,有空格的必须加双引号包含起来。

以上是 Python中运行os.system返回1 的全部内容, 来源链接: utcz.com/a/159571.html

回到顶部