删除长文本字符串中的所有换行符

2024-04-24 20:28:45 发布

您现在位置:Python中文网/ 问答频道 /正文

基本上,我要求用户在控制台中输入一个文本字符串,但该字符串非常长,包含许多换行符。如何获取用户的字符串并删除所有换行符,使其成为一行文本。我获取字符串的方法非常简单。

string = raw_input("Please enter string: ")

有没有不同的方法可以从用户那里获取字符串?我在Mac上运行Python2.7.4。

很明显,我是一个noob,所以即使一个解决方案不是最有效的,使用最简单语法的解决方案也是值得赞赏的。


Tags: 方法字符串用户文本inputstringrawmac
3条回答

如何用raw_input输入换行符?但是,一旦你有一个字符串,其中有一些字符你想摆脱,只要replace他们。

>>> mystr = raw_input('please enter string: ')
please enter string: hello world, how do i enter line breaks?
>>> # pressing enter didn't work...
...
>>> mystr
'hello world, how do i enter line breaks?'
>>> mystr.replace(' ', '')
'helloworld,howdoienterlinebreaks?'
>>>

在上面的例子中,我替换了所有空格。字符串'\n'表示换行符。而\r表示回车(如果您在windows上,您可能会得到这些,第二个replace将为您处理它们!)。

基本上:

# you probably want to use a space ' ' to replace `\n`
mystring = mystring.replace('\n', ' ').replace('\r', '')

另外,请注意,调用变量string是一个坏主意,因为这会隐藏模块string。另一个名字我会避免,但有时会喜欢使用:file。出于同样的原因。

您可以尝试使用字符串替换:

string = string.replace('\r', '').replace('\n', '')

可以在不使用分隔符arg的情况下拆分字符串,这将把连续的空白视为单个分隔符(包括换行符和制表符)。然后使用空格连接:

In : " ".join("\n\nsome    text \r\n with multiple whitespace".split())
Out: 'some text with multiple whitespace'

https://docs.python.org/2/library/stdtypes.html#str.split

相关问题 更多 >