Я запускаю рабочий процесс, который включает в себя распаковку данных каждое утро. Застежка-молния будет выглядеть примерно так:Python разархивируйте файл и проверьте, существует ли файл
zip_download.zip
Set 1
2014
Feb
17th
Image_1.png
Image_2.png
Set 2
2014
Feb
14th
Image_1.png
Image_2.png
Example file path: zip_download.zip/set 1/2014/Feb/14th/Image_1.png
Что мне нужно для Python, чтобы распаковать эти файлы ежедневно и в основном создать базу данных в окнах папок. Иногда могут быть данные за предыдущие дни, и эта папка может уже существовать, поэтому мне нужна эта обработка ошибок.
Вот то, что я до сих пор:
import zipfile
import os
target_location = r'C:/new_filestructure'
file_download = r'C:/Users.Mike/Downloads/download1.zip'
with zipfile.ZipFile(target_zip) as zip_file:
for member in zip_file.namelist():
try:
os.makedirs(os.path.join(target_location + r'/' + os.path.dirname(member)))
except:
(OSSError, WindowsError)
print os.path.basename(member)
print os.path.dirname(member)
Это будет прекрасно работать и печатать то, что я хочу (только тестирование, чтобы увидеть, если она проходит через все файлы), но это не будет создавать отдельную папку , Если я выберу try/except, я получу ошибку, заявив, что каталог уже существует, когда он явно этого не делает.
Любые идеи?
os.path.join принимает аргументы папки разделенных запятой в качестве боковой заметки. Нет необходимости в + r '/' + и т. Д. – AER