开发者社区> 问答> 正文

Python 使用rar命令压缩多个文件夹? 报错

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




展开
收起
优选2 2020-06-04 21:18:24 1036 0
1 条回答
写回答
取消 提交回答
  • 22 行:

    zip_command="rar a " + target + ' '.join(source)

    ######果然,加上空格就可以正确执行了,谢谢。######

    楼上正解,zip_command你那种定义是一个tuple, 但是os.system 的参数限定是字符窜。

    ######回复 @王建奎Jerrick : 我知道是改加号,改了以后命令和参数挨着了,又加多一个空格把他们分开就好了。######回复 @然则何时而乐 : 不是加空格吧,zip_command="rar a ",target,' '.join(source) 是把, 改成了+######加上空格就可以正确执行了,谢谢。
    2020-06-05 11:35:53
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
From Python Scikit-Learn to Sc 立即下载
Data Pre-Processing in Python: 立即下载
双剑合璧-Python和大数据计算平台的结合 立即下载