1

如何从字符串中删除换行符回车的空格和条?我试过了:

a = []
for i in range(len(lines)):
     a.append(lines[i].rstrip().lstrip('\n'))

lines 是使用 readlines() 函数创建的行列表。

4

2 回答 2

5

str.strip()从字符串的任一侧删除所有空格,因此最简单的方法就是:

with open("source.txt") as file:
    a = [line.strip() for line in file]

您的代码的问题是您正在使用str.lstrip()并且str.rstrip()错误的方式 - 换行符在右侧,但您试图从左侧剥离它。换行符被剥离,因为str.rstrip()从右边剥离所有空格(包括换行符),而str.lstrip("\n")从左边找不到换行符,所以什么也不做,因此你的问题。

如果您需要在换行符之外留下尾随空格,那么您会想要line.rstrip("\n").lstrip()- 从原始代码中交换左右条带的参数。这将确保除了换行符之外没有空格被剥离,就像上面的代码一样。

请注意,我使用列表推导来执行此操作 - 它更具可读性和效率,并且是执行此类任务的好方法。

我还直接在文件对象上循环,因为这样更有效(不必将行加载到内存中)。请注意我使用with 语句打开文件 - 这是 Python 中的最佳实践,因为它可以保护您免受细微错误的影响,并且(再次)更具可读性

于 2013-03-25T00:30:26.600 回答
2
a = [line.strip() for line in lines]

我认为在放入行列表之前最好先剥离

于 2013-03-25T00:32:38.117 回答