日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
Python調(diào)用zip命令正確操作方法解析

當(dāng)我們?cè)趹?yīng)用Python編程語(yǔ)言進(jìn)行程序開發(fā)的時(shí)候,我們會(huì)發(fā)現(xiàn)這一語(yǔ)言可以幫助我們輕松的完成一些特定的功能需求。在這里我們就先一起來了解一下Python調(diào)用zip命令的使用方法,以此了解這一語(yǔ)言的操作方法。

雁塔網(wǎng)站建設(shè)公司成都創(chuàng)新互聯(lián)公司,雁塔網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為雁塔數(shù)千家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\成都外貿(mào)網(wǎng)站建設(shè)公司要多少錢,請(qǐng)找那個(gè)售后服務(wù)好的雁塔做網(wǎng)站的公司定做!

Python調(diào)用zip命令例子程序是這樣的:

 
 
 
  1. #!/usr/bin/Python  
  2. # Filename: backup_ver1.py  
  3. import os  
  4. import time  
  5. # 1. The files and directories to be backed up are specified in a list.  
  6. source = ['/home/swaroop/byte', '/home/swaroop/bin']  
  7. # If you are using Windows, use source = [r'C:\Documents', r'D:\Work'] 
    or something like that  
  8. # 2. The backup must be stored in a main backup directory  
  9. target_dir = '/mnt/e/backup/' # Remember to change this to what 
    you will be using  
  10. # 3. The files are backed up into a zip file.  
  11. # 4. The name of the zip archive is the current date and time  
  12. target = target_dir + time.strftime('%Y%m%d%H%M%S') + '.zip'  
  13. # 5. We use the zip command (in Unix/Linux) to put the files 
    in a zip archive  
  14. zip_command = "zip -qr '%s' %s" % (target, ' '.join(source))  
  15. # Run the backup  
  16. if os.system(zip_command) == 0:  
  17. print 'Successful backup to', target  
  18. else:  
  19. print 'Backup FAILED' 

由于上面Python調(diào)用zip命令例子是在Unix/Linux下的,需要改成windows

 
 
 
  1. #!/usr/bin/Python  
  2. # Filename: backup_ver1.py  
  3. import os  
  4. import time  
  5. source =[r'C:\My Documents', r'D:\Work']  
  6. target_dir = r'F:\back up\' # Remember to change this to 
    what you will be using  
  7. target = target_dir + time.strftime('%Y%m%d%H%M%S') + '.zip'  
  8. zip_command = "zip -qr '%s' %s" % (target, ' '.join(source))  
  9. # Run the backup  
  10. if os.system(zip_command) == 0:  
  11. print 'Successful backup to', target  
  12. else:  
  13. print 'Backup FAILED' 

問題一:

當(dāng)改好后,運(yùn)行會(huì)發(fā)生異常,提示:"EOL while scanning single-quoted string",該異常出現(xiàn)在上面代碼的粗體行

 
 
 
  1. target_dir = r'F:\back up\' 

在Python調(diào)用zip命令中,發(fā)生錯(cuò)誤主要是因?yàn)檗D(zhuǎn)義符與自然符號(hào)串間的問題,看Python的介紹:#t#

自然字符串

如果你想要指示某些不需要如轉(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)?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)為:

 
 
 
  1. #!/usr/bin/Python  
  2. # Filename: backup_ver1.py  
  3. import os  
  4. import time  
  5. source =[r'C:\My Documents', r'D:\Work']  
  6. target_dir = 'F:\\back up\\' # Remember to change this to what 
    you will be using  
  7. target = target_dir + time.strftime('%Y%m%d%H%M%S') + '.zip'  
  8. zip_command = "zip -qr \"%s\" \"%s\"" % (target, ' '.join(source))  
  9. # Run the backup  
  10. if os.system(zip_command) == 0:  
  11. print 'Successful backup to', target  
  12. else:  
  13. print 'Backup FAILED' 

以上就是我們對(duì)Python調(diào)用zip命令的相關(guān)介紹。


分享標(biāo)題:Python調(diào)用zip命令正確操作方法解析
URL分享:http://m.5511xx.com/article/djhijjs.html