Уведомления

Группа в Telegram: @pythonsu

#1 Июль 27, 2017 20:39:49

JediSkywalker
Зарегистрирован: 2017-07-09
Сообщения: 10
Репутация: +  0  -
Профиль   Отправить e-mail  

Программа, разбивающая файл на несколько по разделителю

Вот моя, но она не очень-то работает, можете помочь доработать?

 filename = input("Enter the path to the file: ")
file = open(filename, "rb")
cont = file.read()
div = b"\xED\x33"
path1 = "C:\\Users\\HUMAN\\Desktop\\Fonts\\"
path2 = 1
path3 =".txt"
i = 0
nconts = cont.split(div)
file.close()
for c in nconts:
    c += div
    path = path1 + str(path2) + path3
    filen = open(path, "wb")
    filen.write(nconts[i])
    filen.close()
    i += 1
print("Operation completed")

Офлайн

#2 Июль 27, 2017 21:04:12

JOHN_16
От: Россия, Петропавловск-Камчатск
Зарегистрирован: 2010-03-22
Сообщения: 3292
Репутация: +  221  -
Профиль   Отправить e-mail  

Программа, разбивающая файл на несколько по разделителю

вы в цикле открываете файл для полной его перезаписи. Понимаете ?



_________________________________________________________________________________
полезный блог о python john16blog.blogspot.com

Офлайн

#3 Июль 27, 2017 22:05:02

JediSkywalker
Зарегистрирован: 2017-07-09
Сообщения: 10
Репутация: +  0  -
Профиль   Отправить e-mail  

Программа, разбивающая файл на несколько по разделителю

JOHN_16
вы в цикле открываете файл для полной его перезаписи. Понимаете ?
А, спасибо, не заметил. Нужно инкрементировать path2.

Советы по оптимизации принимаются. Я пытался работать через “with open(file) as f:”, но почему-то мне отказали в доступе.

Офлайн

#4 Июль 28, 2017 11:25:36

JOHN_16
От: Россия, Петропавловск-Камчатск
Зарегистрирован: 2010-03-22
Сообщения: 3292
Репутация: +  221  -
Профиль   Отправить e-mail  

Программа, разбивающая файл на несколько по разделителю

JediSkywalker Например так

 SEPARATOR = b"\xED\x33"
filename = input("Enter the path to the file: ")
with open(filename, "rb") as f:
    content = f.read()
filename_template = r"C:\Users\HUMAN\Desktop\Fonts\{}.txt"
for index, partition in enumerate(content.split(SEPARATOR), start=1):
    new_filename = filename_template.format(index)
    with open(new_filename, 'wb') as f:
        f.write(partition)



_________________________________________________________________________________
полезный блог о python john16blog.blogspot.com

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version