2015-12-15 2 views
2

Как удалить строку в строке строки /n в конце строки?Удалить/n в конце строки (Python)

Я пытаюсь прочитать две строки из файла .txt и хочу отформатировать их с помощью метода os.path.join() после того, как я «очистил» строку.

Здесь вы можете увидеть мою попытку с фиктивными данными:

content = ['Source=C:\\Users\\app\n', 'Target=C:\\Apache24\\htdocs'] 

for string in content: 
    print(string) 
    if string.endswith('\\\n'): 
     string = string[0:-2] 

print(content) 
+2

Используйте 'line.strip()'. – Zety

+2

Я думаю, что вы пытаетесь изменить итератор, а не содержимое, кроме этого делает то, что вы хотите: '[x.rstrip ('\ n') для x в содержимом]' – EdChum

ответ

3

Вы не можете обновить строку, как вы пытаетесь. Строки Python неизменяемы. Каждый раз, когда вы меняете строку, создается новый экземпляр. Но ваш список по-прежнему относится к старому объекту. Таким образом, вы можете создать новый список для хранения обновленных строк. А для полос новой строки вы можете использовать функцию rstrip. Посмотрите на приведенный ниже код,

content = ['Source=C:\\Users\\app\n', 'Target=C:\\Apache24\\htdocs'] 
updated = [] 
for string in content: 
    print(string) 
    updated.append(string.rstrip()) 

print(updated) 
3

Вы можете использовать rstrip функцию. он обрезает любой «пустой» строка, включая \n из строки, как показано ниже:

>>> a = "aaa\n" 
>>> print a 
aaa 
>>> a.rstrip() 
'aaa' 
0

Когда вы делаете string[0:-2] вы фактически извлекая 2 символа с конца, в то время как \n один символ.

попробовать:

content = map(lambda x: x.strip(), content) 
0

Чтобы удалить только \n использовать это:

string = string.rstrip('\n') 
Смежные вопросы