Подтвердить что ты не робот

Удалить все новые строки из строки

Я пытаюсь удалить все символы новой строки из строки. Я прочитал о том, как это сделать, но мне кажется, что по какой-то причине я не могу этого сделать. Вот шаг за шагом, что я делаю:

string1 = "Hello \n World"
string2 = string1.strip('\n')
print string2

И я все еще вижу символ новой строки в выводе. Я тоже попробовал с rstrip, но все еще вижу новую строку. Может ли кто-нибудь пролить свет на то, почему я делаю это неправильно? Благодарю.

4b9b3361

Ответ 1

strip удаляет только символы из начала и конца строки. Вы хотите использовать replace:

str2 = str.replace("\n", "")

Ответ 2

strip() возвращает строку после удаления начального и конечного пробелов. см. doc

В вашем случае вы можете попробовать replace():

string2 = string1.replace('\n', '')

Ответ 3

Как упомянул @john, самый надежный ответ:

string = "a\nb\rv"
new_string = " ".join(string.splitlines())

Ответ 4

или вы можете попробовать следующее:

string1 = 'Hello \n World'
tmp = string1.split()
string2 = ' '.join(tmp)

Ответ 5

Отвечаю поздно, так как у меня недавно был тот же вопрос при чтении текста из файла; попробовал несколько опций, например:

with open('verdict.txt') as f: 

Первый вариант ниже дает список с именем alist, с '\n' разделенным, затем возвращается обратно в полный текст (необязательно, если вы хотите иметь только один текст):

alist = f.read().splitlines()
jalist = " ".join(alist)

Второй вариант ниже намного проще и проще, выдает строку текста с именем atext, заменяя '\n' пробелом;

atext = f.read().replace('\n',' ')

Это работает; Я сделал это. Это чисто, проще и эффективнее.

Ответ 6

strip() возвращает строку с удалением ведущих и завершающих пробелов (по умолчанию).

Таким образом, он превратит " Hello World " в "Hello World", но не удалит символ \n, поскольку он присутствует между строкой.

Попробуйте replace().

str = "Hello \n World"
str2 = str.replace('\n', '')
print str2

Ответ 7

Если файл содержит разрыв строки в середине текста, ни strip(), ни rstrip() не решит проблему,

strip используется для обрезки с начала и конца строки

replace() - это способ решить вашу проблему.

>>> my_name = "Landon\nWO"
>>> print my_name
   Landon
   WO

>>> my_name = my_name.replace('\n','')
>>> print my_name
LandonWO