Уведомления

Группа в Telegram: @pythonsu

#1 Июнь 5, 2017 21:11:39

OzMod
Зарегистрирован: 2017-01-11
Сообщения: 38
Репутация: +  1  -
Профиль   Отправить e-mail  

Zip

Помогите разобраться при архивации папки с файлами, у меня почему то в архиве создаются все папки пути…
Пример:

 import os,zipfile
OpFILE =  r"C:\Python34\OzCompiler\Project\Папка с файлами"
yourfolder = OpFILE
arch = zipfile.ZipFile(OpFILE+r'.zip', 'w', zipfile.ZIP_DEFLATED)
for root, dirs, files in os.walk(yourfolder):
    print (root+'\\'+str(files))
    for tarfile in files:
        arch.write(root+'\\'+tarfile)
    arch.write(root)
arch.close()
# В этом примере в архив попадут все эти папки ( C:\Python34\OzCompiler\Project\Папка с файлами )
# А мне нужно, что бы в архив попала последняя папка ( Папка с файлами )

Офлайн

#2 Июнь 5, 2017 21:48:02

treeloys
Зарегистрирован: 2017-06-01
Сообщения: 12
Репутация: +  0  -
Профиль   Отправить e-mail  

Zip

Ты начинаешь обходить все файлы и одновременно с этим создаешь архив. Используй для этих целей папку temp. А потом готовый архив останется только скопировать.

Отредактировано treeloys (Июнь 5, 2017 22:01:06)

Офлайн

#3 Июнь 5, 2017 21:59:29

OzMod
Зарегистрирован: 2017-01-11
Сообщения: 38
Репутация: +  1  -
Профиль   Отправить e-mail  

Zip

treeloys
что chdir?
на моём примере можно, показать..
Зарание спасибо!

Офлайн

#4 Июнь 5, 2017 22:05:46

treeloys
Зарегистрирован: 2017-06-01
Сообщения: 12
Репутация: +  0  -
Профиль   Отправить e-mail  

Zip

OzMod
Зарание спасибо!
ты хотя бы скрин сделал…
 import os,zipfile
input_dir = 'C:\\lolicon\\'
out_file = 'C:\\py\\sex.zip'
yourfolder = input_dir
arch = zipfile.ZipFile(out_file, 'w', zipfile.ZIP_DEFLATED)
for root, dirs, files in os.walk(yourfolder):
	print (root+'\\'+str(files))
	for tarfile in files:
		arch.write(root+'\\'+tarfile)
	arch.write(root)
arch.close()
Все четко, порнуха архивируется.

Отредактировано treeloys (Июнь 5, 2017 22:21:16)

Офлайн

#5 Июнь 5, 2017 22:22:10

OzMod
Зарегистрирован: 2017-01-11
Сообщения: 38
Репутация: +  1  -
Профиль   Отправить e-mail  

Zip

treeloys
Не пойму зачем скрин нужен?
Скопируй скрипт и запусти его…

Офлайн

#6 Июнь 5, 2017 22:25:11

treeloys
Зарегистрирован: 2017-06-01
Сообщения: 12
Репутация: +  0  -
Профиль   Отправить e-mail  

Zip

OzMod
treeloysНе пойму зачем скрин нужен?
OzMod
у меня почему то в архиве создаются все папки пути…
мне просто интересно каким образом? Пример рабочий.

Офлайн

#7 Июнь 5, 2017 22:48:03

OzMod
Зарегистрирован: 2017-01-11
Сообщения: 38
Репутация: +  1  -
Профиль   Отправить e-mail  

Zip

treeloys
с корня диска и у меня всё нормально, попробуй так!!

 import os,zipfile
input_dir = r"C:\py\lolicon"
out_file = r"C:\py\sex.zip"
yourfolder = input_dir
arch = zipfile.ZipFile(out_file, 'w', zipfile.ZIP_DEFLATED)
for root, dirs, files in os.walk(yourfolder):
	print (root+'\\'+str(files))
	for tarfile in files:
		arch.write(root+'\\'+tarfile)
	arch.write(root)
arch.close()

Офлайн

#8 Июнь 5, 2017 22:56:34

treeloys
Зарегистрирован: 2017-06-01
Сообщения: 12
Репутация: +  0  -
Профиль   Отправить e-mail  

Zip

OzMod
treeloysс корня диска и у меня всё нормально, попробуй так!!
А зачем ты убрал последнюю чёрточки, я же специально убрал сырые строки

Офлайн

#9 Июнь 5, 2017 23:28:18

OzMod
Зарегистрирован: 2017-01-11
Сообщения: 38
Репутация: +  1  -
Профиль   Отправить e-mail  

Zip

treeloys
так тоже не помогает..

 import os,zipfile
input_dir = "C:\\Python34\\OzCompiler\\Project\\Новая папка\\"
out_file = "C:\\Новая папка.zip"
yourfolder = input_dir
arch = zipfile.ZipFile(out_file, 'w', zipfile.ZIP_DEFLATED)
for root, dirs, files in os.walk(yourfolder):
	print (root+'\\'+str(files))
	for tarfile in files:
		arch.write(root+'\\'+tarfile)
	arch.write(root)
arch.close()
в архиве все папки (( - ( Python34\OzCompiler\Project\Новая папка )
а должна быть одна ( Новая папка )

Офлайн

#10 Июнь 6, 2017 10:28:24

PEHDOM
Зарегистрирован: 2016-11-28
Сообщения: 2196
Репутация: +  294  -
Профиль   Отправить e-mail  

Zip

так чтоле?

 import os, zipfile
input_dir = "C:\\Python34\\OzCompiler\\Project\\Новая папка\\"
out_file = "C:\\Новая папка.zip"
yourfolder = os.path.normpath(input_dir)
arch = zipfile.ZipFile(out_file, 'w', zipfile.ZIP_DEFLATED)
for root, dirs, files in os.walk(yourfolder):
    for file_name in files:
        src_name = os.path.abspath(os.path.join(root, file_name))
        arc_name = src_name[len(yourfolder) + 1:]
        print('zipping {} as {}'.format(src_name, arc_name))
        arch.write(src_name, arc_name)
arch.close()



==============================
Помещайте код в теги:
[code python][/code]
Бериегите свое и чужое время.

Отредактировано PEHDOM (Июнь 6, 2017 10:48:08)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version