我有一個很大的沒有。名稱僅爲數字的zip文件。現在,每個zip文件都包含一個與zip文件具有相同名稱的文件夾(即,如果zip文件的名稱是1234.zip,那麼文件夾的名稱也將是1234)。此文件夾還包含一個文本文件,其中包含atextfile.txt,其中包含指定zip年份的整數,例如2016.
現在我想將每個zip文件移動到其各自的文件夾,即一年一度。意思是我想要做的是提取年的價值,即2016年,並創建一個名爲2016的文件夾,將zip文件移動到此文件夾,併爲下一個zip文件執行相同的操作。
我成功檢索年份並將其存儲在名爲year的變量中。
到目前爲止我寫的代碼:如何將一個zip文件移動到一個文件夾
import glob
import os
import zipfile
import shutil
for zip_name in glob.glob('[0-9]*.zip'):
z=zipfile.ZipFile(zip_name)
# To remove '.zip' from the name of zip_name
subdir = zip_name[:-4]
with z.open('{}/atextfile.txt'.format(subdir)) as f:
for line in f:
for word in line:
year = word
# the file atextfile.txt has many lines containing many integer of which the first line represents the year.
break
else:
continue
break
z.close()
if not os.path.exists(year):
os.makedirs(year)
shutil.move(zip_name, year)
這是給出了錯誤:
WindowsError:[錯誤32],因爲它被另一個進程的進程不能訪問該文件。
我用Google搜索了一下,然後我才知道這背後的原因是因爲我的zip文件已經打開。但我無法解決這個問題,所以請幫助。
更新:問題已解決我將zip_name和year存儲在文本文件中,然後在另一個程序中讀取文本文件並將相應的zip文件移至其year文件夾。感謝您的回覆。
確保您沒有文件夾打開。看看你的活動計劃。你打開文件夾了嗎? – TheLazyScripter