C:. │ main.py │ ├─1_STL_算法簡介 │ STL_算法簡介.rar │ └─2_STL_算法_填充新值 STL_算法_填充新值.rar
事情是這樣的,下載了一套教學視頻,文件夾命名規則是:「序號+視頻名」,文件夾內是「視頻名.rar」,上面選取了其中兩個文件做爲示例。這樣看視頻的時候就出現一個問題,每看一次都須要切換一次目錄,解壓一次文件,煩!
遂寫main.pypython
import rarfile import shutil import os path = os.getcwd() allFile = os.listdir(path) for dir in allFile: if '.' not in dir: dir2 = os.listdir(path+'\\'+dir) for file in dir2: if '.rar' in file: rar = rarfile.RarFile(path+'\\'+dir+'\\'+file) rar.extractall(path+'\\'+dir) dir2 = os.listdir(path+'\\'+dir) for file in dir2: if '.wmv' in file: print(dir) print(file) os.chdir(path+'\\'+dir) os.rename(file, dir+'.wmv') shutil.copy2(dir+'.wmv', path) os.chdir(path)
出現問題:算法
Traceback (most recent call last): File "C:\Python35\lib\site-packages\rarfile.py", line 2813, in custom_popen creationflags=creationflags) File "C:\Python35\lib\subprocess.py", line 676, in __init__ restore_signals, start_new_session) File "C:\Python35\lib\subprocess.py", line 955, in _execute_child startupinfo) FileNotFoundError: [WinError 2] 系統找不到指定的文件。 During handling of the above exception, another exception occurred: Traceback (most recent call last): File "C:\Users\Administrator\Desktop\新建文件夾 (2)\main.py", line 14, in <module> rar.extractall(path+'\\'+dir) File "C:\Python35\lib\site-packages\rarfile.py", line 820, in extractall self._extract(fnlist, path, pwd) File "C:\Python35\lib\site-packages\rarfile.py", line 885, in _extract p = custom_popen(cmd) File "C:\Python35\lib\site-packages\rarfile.py", line 2816, in custom_popen raise RarCannotExec("Unrar not installed? (rarfile.UNRAR_TOOL=%r)" % UNRAR_TOOL) rarfile.RarCannotExec: Unrar not installed? (rarfile.UNRAR_TOOL='unrar')
下載UnRar.exe
連接:http://pan.baidu.com/s/1o8ObqCa 密碼:dsrusession
放在當前文件夾,運行main.py。
目錄樹變爲:rest
C:. │ 1_STL_算法簡介.wmv │ 2_STL_算法_填充新值.wmv │ main.py │ UnRAR.exe │ ├─1_STL_算法簡介 │ 1_STL_算法簡介.wmv │ STL_算法簡介.rar │ └─2_STL_算法_填充新值 2_STL_算法_填充新值.wmv STL_算法_填充新值.rar