Python中运行os.system返回1
刚刚写了个备份文件的程序,但是os.system一直返回1,有人知道怎么解决吗
代码如下
import osimport 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