-1
我正在研究一個python腳本,它將使用zipfile
和os
將文件夾及其所有內容添加到zip文件。TypeError:強制爲Unicode:需要字符串或緩衝區,找到列表:如何創建循環
z = ZipFile("mynewfile.zip", "w")
z.write(os.walk(directory))
z.printdir()
z.close()
不幸的是,我發現,這是使用os.walk
,這會導致錯誤時考慮的列表:
TypeError: coercing to Unicode: need string or buffer, list found: how to create a loop
在此錯誤環顧四周,我想我需要一個循環來循環每項目在列表中。我的問題是,我無法弄清楚如何爲我的特定需求翻譯以前的答案。 e.g TypeError: coercing to Unicode: need string or buffer, list found
我也曾嘗試
for root dirs files in os.walk(directory)
z.write(files)
這也導致出現同樣的錯誤。
但是使用
for root dirs files in os.walk(directory)
z.write(root)
顯示該目錄中的所有文件夾,但沒有文件。我不知道爲什麼這不算列表。
我想我需要以某種方式結合這兩個想法,這樣做的任何幫助將大大appeciated。
如果'files'是一個列表,那麼爲什麼不只是有第二個(內部)for循環遍歷該列表的所有元素? (也沒有你發佈的例子有實際有效的語法) – UnholySheep