我想解壓文件python。我給我的程序一個文件路徑,該文件的主目錄有9個子目錄和python循環遍歷它們,找到具有特定名稱的tar文件並對它們進行解壓縮。使用python的Untar文件沒有錯誤/警告?
所以我output_text
文件有我的主目錄,i循環之後throught在該目錄中我01-09
文件的數量和解壓文件與他們特定名稱。
我已經寫了一些代碼,但發生的事情是什麼都沒有,沒有錯誤,沒有警告什麼:
def main():
output_path = "/Users/rs/Documents/clients_file.txt"
path = []
with open(output_path) as f:
for exptini_path_raw in f:
exptini_path = exptini_path_raw.strip()
path.append(exptini_path)
for i in range(1,1):
for j in range(0,len(path)):
if i < 10:
p = "/%s/0%d/middleware"%(path[j],i)
else:
p = "/%s/%d/middleware"%(path[j],i)
for root, _, files in os.walk(p):
for f in files:
if not 'client-logs' or 'middleware-logs' in f:
continue
print 'going to extract %s'%f
f1 = os.path.join(p,f)
tar = tarfile.open(f1)
tar.extractall()
tar.close()
if __name__ == '__main__':
main()
注:即使我打印出不出現,可能是什麼原因?
編輯:我修改了代碼,現在得到這個
File "unzip_files.py", line 47, in <module>
main()
File "unzip_files.py", line 40, in main
tar = tarfile.open(f1)
File
「/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/tarfile.py」,行1672在開放 提高ReadError(「文件不能成功打開」) tarfile.ReadError:文件不能成功打開
這是我的mdodified代碼:
進口OS 進口os.path中 import tarfile
def main():
output_path = "/Users/rs/Documents/clients_file.txt"
path = []
with open(output_path) as f:
for exptini_path_raw in f:
exptini_path = exptini_path_raw.strip()
path.append(exptini_path)
print path
for i in range(1,10):
print i
for j in range(0,len(path)):
print j
if i < 10:
p = "/%s/0%d"%(path[j],i)
else:
p = "/%s/%d"%(path[j],i)
print p
for root, _, files in os.walk(p):
for f in files:
if not 'client-logs' or 'middleware-logs' in f:
continue
print 'going to extract %s'%f
f1 = os.path.join(p,f)
tar = tarfile.open(f1)
tar.extractall()
tar.close()
if __name__ == '__main__':
main()
注意:該文件是一個tgz文件!
謝謝!它說p值= 「/%S/{0:0> 2} /中間件」 %(路徑[j]時,ⅰ) 類型錯誤:不串格式化 – LoveMeow
過程中被轉化的所有參數,它仍然不執行任何操作,即使我保持所有你的變化除了第26行的變化:( – LoveMeow
我修正並測試了整個腳本,它現在適用於我的新變更。 –