У меня проблемы с python и zipfile, а именно: я не могу добавить второй файл в свой почтовый индекс. вот мой код, если вам нужно больше, я буду рад предоставить его.python zipfile несколько файлов
def zipDir(fn_source, fn_destinationFolder):
''' fn_destinationFolder = folder to zip
fn_source = destination path for the zip
'''
fn_zipfileName = os.path.join(os.path.dirname(os.path.basename(fn_source)),fn_destinationFolder)+'.zip'
with zipfile.ZipFile(fn_zipfileName, 'w') as fn_zipfile:
for csvFile in os.listdir(fn_destinationFolder):
# fn_zipfile.write(csvFile)
if csvFile.endswith('.csv'):
try:
# fn_zipfile.write(os.path.join(fn_destinationFolder,csvFile)) ## write the whole filestructure to zip, '/home/uname/.../xyz.zip'
fn_zipfile.write(csvFile) ## write only the file to zip 'xyz.zip'
except IOError:
None
print('did not add',csvFile,'to',fn_zipfile)
fn_zipfile.printdir()
return fn_zipfileName
в директории "тест", у меня есть 2 файла: "example.csv" и "example1.csv" это приводит к следующей ошибке:
python3.5 removing_the_header_from_CSV.py --from test --to zip
Removed headers from example.csv
Removed headers from example1.csv
did not add example1.csv to <zipfile.ZipFile filename='/home/xxx/repos/automate_the_boring_stuff/14_csv_files_and_json_data/NEW_test_2016-05-22_12-19-23.zip' mode='w'>
File Name Modified Size
example.csv 2016-05-20 17:12:19 191
zipfile can be found at /home/xxx/repos/automate_the_boring_stuff/14_csv_files_and_json_data/NEW_test_2016-05-22_12-19-23.zip
, если я использую только " fn_zipfile.write (csvFile)», я получаю эту дополнительную информацию:
python3.5 removing_the_header_from_CSV.py --from test --to zip
Removed headers from example.csv
Removed headers from example1.csv
Traceback (most recent call last):
File "removing_the_header_from_CSV.py", line 169, in <module>
main()
File "removing_the_header_from_CSV.py", line 156, in main
zipfileName = zipDir(source, destinationFolder)
File "removing_the_header_from_CSV.py", line 112, in zipDir
fn_zipfile.write(csvFile)
File "/usr/lib/python3.5/zipfile.py", line 1433, in write
st = os.stat(filename)
FileNotFoundError: [Errno 2] No such file or directory: 'example1.csv'
Я попытался это с различными файлами и всегда один и тот же результат, кроме случаев, когда у меня только 1 файл в моей тестовой директории. Затем все работает так, как ожидалось.
Почему вы думаете, что исключение лежит? –
потому что я сделал ls | grep xxx и получил файл, также, почему добавляется первый файл? – Sybie
не поймите меня неправильно, я уверен, что python не может найти файл. Мой вопрос: «Как я могу решить свою проблему» – Sybie