pyhton system 使用7z解壓和壓縮
import os
'''
環境:windows10
壓縮工具:7z.exe
實現語言:python
語言版本:2.7
*****網上提供了一堆坑人的解壓方法,本想省點事快速搞定 奶奶個腿的 都怪自己太懶反倒浪費了更多時間****
這裡只針對壓縮和解壓縮檔案
在這裡遇到的主要麻煩就是含有空格的路徑的處理比較麻煩,開始找了很久都沒有搞定
參考:http://www.docin.com/p-631199577.html 雖然是關於C#解壓 但是方法都相同,
沒有細看只看了自己需要的
壓縮:
壓縮的時候chdir最好切到需要壓縮的資料夾下,不然cmd會很長,切記在遇到空格的時候使用雙引號括起來
如果檔案發生變動,那麼再次壓縮的時候7z會自動更新
解壓縮
解壓縮的時候chdir最好切到7z.exe目錄下,這樣相對而言cmd會短一些,也會避免一些錯誤
如果解壓命令使用 “e” 將失去目錄關係
-aos -r :表示如果已經被解壓就不再解壓並且不詢問。
解壓縮,如果被解壓的檔案發生變動,解壓縮元旦發現已經有需要解壓的同名資料夾則不會更新直接跳過不解壓
如果有方法請留言告知 謝謝
'''
sign=False;#標記是解壓還是壓縮
if sign:
folder_name=r"C:\xxxxxxxxxxx\New folder";\\需要壓縮的檔案位置
os.chdir(folder_name)#切換到相應的目錄下
#壓縮
#1.txt 2.txt是folder_name目錄需要壓縮的檔案列表
#C:\\xxxxxxxxxxx\\\"New folder\"\\c.7z 儲存位置及壓縮檔案的名稱
cmd = r"C:\\\"Program Files\"\\7-Zip\\7z.exe a C:\\xxxxxxxxxxx\\\"New folder\"\\c.7z 1.txt 2.txt";
print cmd;
os.system(cmd)
else:
folder_name=r"C:\Program Files\7-Zip"#7z.exe位置
os.chdir(folder_name)
# 解壓
rar_path = "C:\\xxxxxxxxxxx\\New folder (2)\\c.rar";
un_path,name = os.path.splitext(rar_path);
un_path = '"{}"'.format(un_path);
cmd = '7z.exe x "{}" -o{} -aos -r'.format(rar_path,un_path);
print cmd;
os.system(cmd)