Я новичок в питоне. Мое требование состоит в том, чтобы заархивировать (со сжатием) все файлы из исходного каталога в целевой каталог. Я использовал следующий код из stackOverFlow.
import zipfile, os
locfile = "D:\Python\Dir_dir\Dir_dir\ABC.txt"
loczip = "D:\Python\Dir_dir\Dir_dir2\ABC_TEST.zip"
zip = zipfile.ZipFile (loczip, "w")
zip.write (locfile)
zip.close()
Он создает zip-файл, но содержит всю унаследованную структуру каталогов. Кроме диска (D:/) остальная структура добавляется в zip. Он выглядит следующим образом: "D:\Python\Dir_dir\Dir_dir2\ABC_TEST.zip\Python\Dir_dir\Dir_dir\ABC.txt"
тогда как я хотел: "D:\Python\Dir_dir\Dir_dir2\ABC_TEST.zip\ABC.txt"
Также он не сжимается.
Пожалуйста, поделитесь решением этой проблемы.
Спасибо, Субрат.
os.path.basename(locfile)
задает для имени файла в архиве просто'ABC.txt'
с удалением всей информации о пути. Это может быть нормально для файлов первого уровня в исходном каталоге, но если они есть в любых подпапках, это может быть проблемой. 22.08.2014