在字符串末尾删除 /n(Python)[重复]

Posted

技术标签:

【中文标题】在字符串末尾删除 /n(Python)[重复]【英文标题】:Delete /n at end of a String (Python) [duplicate] 【发布时间】:2016-03-21 00:30:28 【问题描述】:

如何删除字符串末尾的/n 换行符?

我正在尝试从.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)

【问题讨论】:

我认为您正在尝试修改迭代器而不是内容,此外这可以满足您的要求:[x.rstrip('\n') for x in content] 【参考方案1】:

您无法像尝试那样更新字符串。 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)

【讨论】:

【参考方案2】:

您可以使用rstrip 函数。它会从字符串中修剪任何“空”字符串,包括\n,如下所示:

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

【讨论】:

【参考方案3】:

要仅删除 \n,请使用:

string = string.rstrip('\n')

【讨论】:

【参考方案4】:

当您执行 string[0:-2] 时,实际上是从末尾删除 2 个字符,而 \n 是一个字符。

尝试:

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

【讨论】:

以上是关于在字符串末尾删除 /n(Python)[重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何从列表中的字符串末尾删除 '\n'? [复制]

我想删除 Pandas 中的字符串 [重复]

在 std::string 末尾附近插入换行符 [重复]

python去除字符串中的换行符

Python:仅在列表末尾删除重复值

从 Java 字符串的末尾删除行尾字符