2015-05-28 3 views
0

Я новичок с python, и у меня есть одна проблема с небольшим сценарием. Надеюсь, кто-то может дать мне ключ.Добавить символ в строку

У меня есть файл под названием «one.txt», который имеет следующие 2 строки:

Hello 
Goodbye 

Я хочу добавить два символа («/ 1») в конце каждой строки и записать его в другой файл под названием result.txt:

result.txt

Hello1/ 
Goodbye1/ 

Я попытался следующие:

x=open("one.txt","r") 
y=open("result.txt","w") 

for line in x: 
    line2= "/1" +line 
    y.write(line2) 

и я получаю:

1/Hello 
1/Goodbye 

, если я изменю line2 с:

line2= line + "/1" 

я получаю:

Hello 
/1Goodbye 
/1 

, который также не является правильным

любые улики?

+0

Это выглядит как вам нужно будет разобрать строки, чтобы опередить символ новой строки, прежде чем добавить свой/1. Затем добавьте символ новой строки. –

+1

Действительно ли это пишет '1/Hello', а не'/1Hello'? – TigerhawkT3

ответ

2

Вы забыли снять новую строку после прочтения строки и добавить ее обратно перед записью.

0
x = open("one.txt", "r") 
y = open("result.txt", "w") 

for line in x: 
    y.write("{}/1\n".format(line.strip()) 
0

Когда вы читаете строку из файла, строка содержит символ новой строки, который указывает конец строки. Ваша строка не "Hello", это "Hello\n". Вам нужно удалить эту новую строку, создать свою выходную строку и добавить другую новую строку, когда вы ее запишете.

for line in x: 
    line = line.rstrip('\n') 
    line2 = line + '/1\n' 
    y.write(line2) 
1

Вот еще один вариант, с помощью менеджеров контекста для файлов (так что вы не забыли закрыть их позже) - в противном случае это похоже на ответ по @IgorPomaranskiy:

with open("one.txt") as x, open("result.txt", "w") as y: 
    for line in x: 
     y.write("{}\n".format(line.strip() + "/1")) 
+0

классный трюк, спасибо! –

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