Python, расщепление строк - PullRequest
4 голосов
/ 03 февраля 2011

У меня большой текстовый файл, я хотел бы разбить строку на каждые 117 символов и поместить следующие 117 символов в новую строку и так далее до конца файла.

Я попробовал это: `s =" "" Я удалил строку из соображений видимости «»» пробел = "" "

""» file = open ('testoutput.txt', 'w') пока с: print s [: 10] выход = выход + s + "" "

"""
s = s[10:]

file.write (выход) file.close () печать "Готово" `

, но возникла проблема, из-за которой конечный результат в файле выглядел следующим образом: `эта молекула [SHIFT] r [BACKSPACE] и ее потомки изменятся [BACKSPACE] [BACKSPACE] из-за мутаций

T]r[BACKSPACE]molecule and its descendants would av[BACKSPACE][BACKSPACE]vary because of mutations



ACE]molecule and its descendants would av[BACKSPACE][BACKSPACE]vary because of mutations



le and its descendants would av[BACKSPACE][BACKSPACE]vary because of mutations



 descendants would av[BACKSPACE][BACKSPACE]vary because of mutations



ts would av[BACKSPACE][BACKSPACE]vary because of mutations



v[BACKSPACE][BACKSPACE]vary because of mutations



E][BACKSPACE]vary because of mutations



CE]vary because of mutations



cause of mutations



utations

`

Ответы [ 2 ]

6 голосов
/ 03 февраля 2011
while s:
    print s[:117]
    s = s[117:]
3 голосов
/ 03 февраля 2011

Вы можете разделить буфер с помощью обычного синтаксиса среза или можете выбрать разделение файла непосредственно во время чтения.Это пример второго подхода:

with open(r"/path/to/some/file") as input_file:
    line = input_file.read(117)
    while line:
        print len(line)
        line = input_file.read(117)
...