如何从字符串中删除换行符回车的空白和条带?我试过了:
a = []
for i in range(len(lines)):
a.append(lines[i].rstrip().lstrip('\n'))
lines是使用readlines()函数创建的行列表。
答案 0 :(得分: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()
- 交换原始代码中左右条带的参数。这样可以确保除了换行符之外没有其他空格,就像使用上面的代码一样。
请注意,我使用list comprehension来执行此操作 - 它更具可读性和效率,是执行此类任务的好方法。
我也直接在文件对象上循环,因为它更有效(不必将行加载到内存中)。请注意我使用the with statement打开文件 - 这是Python中的最佳实践,因为它可以保护您免受细微错误的影响,并且(再次)更具可读性
答案 1 :(得分:2)
a = [line.strip() for line in lines]
我认为最好先把它放到行列表中去除