Ответ 1
strip
удаляет только символы из начала и конца строки. Вы хотите использовать replace
:
str2 = str.replace("\n", "")
Я пытаюсь удалить все символы новой строки из строки. Я прочитал о том, как это сделать, но мне кажется, что по какой-то причине я не могу этого сделать. Вот шаг за шагом, что я делаю:
string1 = "Hello \n World"
string2 = string1.strip('\n')
print string2
И я все еще вижу символ новой строки в выводе. Я тоже попробовал с rstrip, но все еще вижу новую строку. Может ли кто-нибудь пролить свет на то, почему я делаю это неправильно? Благодарю.
strip
удаляет только символы из начала и конца строки. Вы хотите использовать replace
:
str2 = str.replace("\n", "")
strip()
возвращает строку после удаления начального и конечного пробелов. см. doc
В вашем случае вы можете попробовать replace():
string2 = string1.replace('\n', '')
Как упомянул @john, самый надежный ответ:
string = "a\nb\rv"
new_string = " ".join(string.splitlines())
или вы можете попробовать следующее:
string1 = 'Hello \n World'
tmp = string1.split()
string2 = ' '.join(tmp)
Отвечаю поздно, так как у меня недавно был тот же вопрос при чтении текста из файла; попробовал несколько опций, например:
with open('verdict.txt') as f:
Первый вариант ниже дает список с именем alist
, с '\n'
разделенным, затем возвращается обратно в полный текст (необязательно, если вы хотите иметь только один текст):
alist = f.read().splitlines()
jalist = " ".join(alist)
Второй вариант ниже намного проще и проще, выдает строку текста с именем atext
, заменяя '\n'
пробелом;
atext = f.read().replace('\n',' ')
Это работает; Я сделал это. Это чисто, проще и эффективнее.
strip() возвращает строку с удалением ведущих и завершающих пробелов (по умолчанию).
Таким образом, он превратит " Hello World "
в "Hello World"
, но не удалит символ \n, поскольку он присутствует между строкой.
Попробуйте replace().
str = "Hello \n World"
str2 = str.replace('\n', '')
print str2
Если файл содержит разрыв строки в середине текста, ни strip()
, ни rstrip()
не решит проблему,
strip используется для обрезки с начала и конца строки
replace()
- это способ решить вашу проблему.
>>> my_name = "Landon\nWO"
>>> print my_name
Landon
WO
>>> my_name = my_name.replace('\n','')
>>> print my_name
LandonWO