Я изучаю python уже около 3 недель, и сейчас я пытаюсь написать небольшой скрипт для сортировки файлов (около 10.000) по ключевым словам и дате, появляющейся в имени файла. Файлы перед указанной датой должны быть добавлены в архив. Сортировка отлично работает, но не архивированиеPython: Получение файлов в архив без каталога?
Создает архив - имя в порядке, но в архиве это полный путь к файлам. Если я его открываю, он выглядит так: folder1 -> folder2 -> folder3 -> files
.
Как его изменить, чтобы архив содержал только файлы, а не всю структуру?
Ниже приведен фрагмент кода с моей молнии функции, node
путь, где файлы были до сортировки, folder
это вложенная папка с файлами, отсортированных по ключевому слову в названии, items
являются папки с файлами, отсортированных по дате.
Я использую Python 2.6
def ZipFolder(node, zipdate):
xynode = node + '/xy'
yznode = node + '/yz'
for folder in [xynode,yznode]:
items = os.listdir(folder)
for item in items:
itemdate = re.findall('(?<=_)\d\d\d\d-\d\d', item)
print item
if itemdate[0] <= zipdate:
arcname = str(item) + '.zip'
x = zipfile.ZipFile(folder + '/' + arcname, mode='w', compression = zipfile.ZIP_DEFLATED)
files = os.listdir(folder + '/' + item)
for f in files:
x.write(folder + '/' + item + '/' + f)
print 'writing ' + str(folder + '/' + item + '/' + f) + ' in ' + str(item)
x.close()
shutil.rmtree(folder + '/' + item)
return
Я также открыты для любых предложений и усовершенствований.
Не комментарии, а docstring. Объясните, что делает функция и для чего она полезна, а не как она работает, и docstring для нее наиболее полезна. –
Удивительно, что это работает, THX для быстрой помощи. – rny
@Jan Hudec: с вы имеете в виду строка документации STH так: Защиту ZipFolder (узел, zipdate): "" "застегивает файлы старше 'zipdate' в подпапках" узел" "" – rny