Python 使用rar命令压缩多个文件夹? 400 报错
初学Python,有一个练习,将多个文件夹压缩为一个文件,原文使用zip命令,我在windows下,使用rar,老是出错,提示 必须是字串,不能是数组,求解
源码如下:
#!/usr/bin/env python # Filename: backup_ver1.py import os import time # 1. The files and directories to be backed up are specified in a list. #source=['/home/swaroop/byte','/home/swaroop/bin'] source=['D:\\FileCopier\\*.*','D:\\jeecms_doc\\*.*'] # If you are using Windows, use source=[r'C:\Documents',r'D:\Work'] or something like that # 2. The backup must be stored in a main backup directory #target_dir='/mnt/e/backup/' #Remember to change this to what you will be using target_dir='E:\\temp\\' #Remember to change this to what 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+time.strftime('%Y%m%d%H%M%S')+'.zip' # 5. We use the zip command (in Unix/Linux) to put the files in a zip archive #zip_command="zip -qr '%s' %s" %(target,' '.join(source)) zip_command="rar a ",target,' '.join(source) # Run the backup if os.system(zip_command)==0: print 'Successful backup to',target else: print 'Backup FAILED'
Traceback (most recent call last): File "E:/project/prjPythonTest/com/my/ex_backup/backup_ver1.py", line 27, in <module> if os.system(zip_command)==0: TypeError: must be string, not tuple
22 行:
zip_command="rar a " + target + ' '.join(source)
######果然,加上空格就可以正确执行了,谢谢。######楼上正解,zip_command你那种定义是一个tuple, 但是os.system 的参数限定是字符窜。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。