Python中怎么調(diào)用zip命令,很多新手對(duì)此不是很清楚,為了幫助大家解決這個(gè)難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來學(xué)習(xí)下,希望你能有所收獲。
成都創(chuàng)新互聯(lián)是一家集網(wǎng)站建設(shè),五河企業(yè)網(wǎng)站建設(shè),五河品牌網(wǎng)站建設(shè),網(wǎng)站定制,五河網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營銷,網(wǎng)絡(luò)優(yōu)化,五河網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競爭力。可充分滿足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶成長自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。
Python調(diào)用zip命令例子程序是這樣的:
#!/usr/bin/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']
# 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# 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 archivezip_command = "zip -qr '%s' %s" % (target, ' '.join(source))
# Run the backup
if os.system(zip_command) == 0:
print 'Successful backup to', target
else:
print 'Backup FAILED'
由于上面Python調(diào)用zip命令例子是在Unix/Linux下的,需要改成windows
#!/usr/bin/Python
# Filename: backup_ver1.py
import os
import time
source =[r'C:\My Documents', r'D:\Work']
target_dir = r'F:\back up\' # Remember to change this to
what you will be usingtarget = target_dir + time.strftime('%Y%m%d%H%M%S') + '.zip'
zip_command = "zip -qr '%s' %s" % (target, ' '.join(source))
# Run the backup
if os.system(zip_command) == 0:
print 'Successful backup to', target
else:
print 'Backup FAILED'
問題一:
當(dāng)改好后,運(yùn)行會(huì)發(fā)生異常,提示:"EOL while scanning single-quoted string",該異常出現(xiàn)在上面代碼的粗體行
target_dir = r'F:\back up\'
在Python調(diào)用zip命令中,發(fā)生錯(cuò)誤主要是因?yàn)檗D(zhuǎn)義符與自然符號(hào)串間的問題,看Python的介紹:
Python實(shí)現(xiàn)tab文件操作相關(guān)應(yīng)用方式解讀
使用Python遞歸對(duì)文件進(jìn)行相關(guān)處理
Python文件操作簡單示例剖析
Python數(shù)字類型具體含義及應(yīng)用特點(diǎn)分析
Python運(yùn)算符基本類型總結(jié)
自然字符串
如果你想要指示某些不需要如轉(zhuǎn)義符那樣的特別處理的字符串,那么你需要指定一個(gè)自然字符串。自然字符串通過給字符串加上前綴r或R來指定。例如r"Newlines are indicated by /n"。
如上所說, target_dir的值應(yīng)該被視作 'F:\back up\',可是這里的轉(zhuǎn)義符卻被處理了。如果換成 r'F:\\back up\\' 轉(zhuǎn)義符卻沒被處理,于是target_dir的值變?yōu)?#39;F:\\back up\\'.將單引號(hào)變成雙引號(hào),結(jié)果還是如此。而如果給它加中括號(hào)【】,變成【r'F:\back up\'】,則程序又沒問題...
于是,解決方法有2個(gè):1)如上所說,加中括號(hào);2)不使用前綴r,直接用轉(zhuǎn)義符‘\’,定義變成target_dir = 'F:\\back up\\'.
問題二:
解決完問題一后,運(yùn)行module,會(huì)提示backup fail. 檢查如下:
1. 于是試著將source和target字符串打印出來檢驗(yàn)是否文件路徑出錯(cuò),發(fā)現(xiàn)沒問題
2. 懷疑是windows沒有zip命令,在命令行里打‘zip’, 卻出現(xiàn)提示幫助,證明可以用zip命令,而且有參數(shù)q,r;
3. 想起sqlplus里命令不接受空格符,于是試著將文件名換成沒空格的, module成功運(yùn)行...
現(xiàn)在問題換成如何能讓zip命令接受帶空格路徑,google了一下,看到提示:“帶有空格的通配符或文件名必須加上引號(hào)”
于是對(duì) zip_command稍做修改,將
zip_command = "zip -qr '%s' %s" % (target, ' '.join(source))
改成:
zip_command = "zip -qr \"%s\" \"%s\"" % (target, '\" \"'.join(source))
改后,module成功運(yùn)行...
正確的script應(yīng)為:
#!/usr/bin/Python
# Filename: backup_ver1.py
import os
import time
source =[r'C:\My Documents', r'D:\Work']
target_dir = 'F:\\back up\\' # Remember to change this to what
you will be usingtarget = target_dir + time.strftime('%Y%m%d%H%M%S') + '.zip'
zip_command = "zip -qr \"%s\" \"%s\"" % (target, ' '.join(source))
# Run the backup
if os.system(zip_command) == 0:
print 'Successful backup to', target
else:
print 'Backup FAILED'
看完上述內(nèi)容是否對(duì)您有幫助呢?如果還想對(duì)相關(guān)知識(shí)有進(jìn)一步的了解或閱讀更多相關(guān)文章,請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝您對(duì)創(chuàng)新互聯(lián)的支持。
網(wǎng)站名稱:Python中怎么調(diào)用zip命令
本文鏈接:http://chinadenli.net/article2/ieghoc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站導(dǎo)航、網(wǎng)站制作、動(dòng)態(tài)網(wǎng)站、電子商務(wù)、軟件開發(fā)、網(wǎng)站設(shè)計(jì)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)