2016-10-13 4 views
0

Так что в основном я должен вызывать текстовый файл и создавать новый файл, добавляя некоторые строки.подсчет строк и создание нового файла

Например, если мой ввод текста:

Здравствуйте

Мир

приятно встретиться с вами

мой выходной текст должен быть:

1: Здравствуйте

2: Мир

3: Приятно познакомиться Вы

Ниже приведен код, который я пытаюсь выяснить. Когда я пытаюсь это сделать, нет ошибки, но он также не создает новый файл.

with open('filetext') as f: 
    content=f.readlines() 
    for count in f: 
     count+=1 
     with open('newfiletext', 'a+') as f:  
     f.write(counts) 
     f.write(': ') 
     f.write(content) 
     f.write('\n') 

Я ценю, могу ли я получить помощь. Заранее спасибо.

+0

1) Ваши отступы в последнем блоке выключен. 2) Для вашего здравомыслия дайте переменным ввода и вывода разные имена. –

+0

ой. Фактически в моем фактическом коде есть отступы. – user7016438

ответ

1

текстовый файл:

Hello 
World 
Nice to Meet You 

код:

with open('test.txt') as f: 
    for i , line in enumerate(f.readlines()): 
     print "{0}:{1}".format(i+1,line) 

выход:

1:Hello 

2:World 

3:Nice to Meet You 

, то вы можете хранить в строку и записать в файл или другой файл

+0

Ваш выход почти правильный, но OP хотел начать отсчет с одного нуля. –

+0

Одна минута изменит его @leaf –

+0

Прошу прощения, но как работает «{0}: {1}»? Я знаю .format (i, line) tho – user7016438

1

Первый вы открываете файл:

with open('filetext') as f: 

Тогда вы читали все это в списке:

content=f.readlines() 

Затем вы пытаетесь перебрать теперь пустой объект файла:

for count in f: 

Так пусто, ничего в следующий блок будет выполнен, даже один раз. Убедитесь, что вы отслеживать имена переменных и использовать уникальные один для каждого уникального объекта, который вы хотите управлять - в частности, f и count повторно используются, когда они не должны быть:

with open('filetext') as f, open('newfiletext', 'a+') as output: 
    count = 0 
    for line in f: 
     count += 1 
     output.write(count) 
     output.write(': ') 
     output.write(line) 
+0

о, мой бог! Я не знал, что могу открыть два файла одновременно! Это облегчает мою жизнь. – user7016438

+0

На самом деле я просто попробовал свой код, но новый файл-архив пуст ...T_T, но все равно благодарю вас за ваше время – user7016438

+0

oh sorry неправильный пост ... – user7016438

Смежные вопросы