Python:读取文件并反转所有行
我想把所有的行都反转过来,但结果却很奇怪,第四行变成了第一行,接着是第五行...
反转之前文件的样子:
1 line
2 line
3 line
4 line
5 line
反转之后的样子:
5 line4 line
3 line
2 line
1 line
这是代码:
file = open(filename, "r")
list = file.readlines()
file.close()
list.reverse()
file = open(filename, "w")
for value in list:
file.write(value)
file.close()
2 个回答
3
文件中的每一行最后都有一个换行符 \n
,除了最后一行。
最简单的方法就是这样做:
file.open(filename,'r')
lines = file.read().split("\n")
file.close()
file = open(filename, "w")
file.write("\n".join(lines[::-1]))
file.close()
你也可以试试用 str.strip()
或 str.rstrip()
来去掉字符串两端或者右边的空白。这种方法会把空格、制表符等都去掉。
3
看起来你在最后一行没有加换行符('\n'
)。这个问题可以很简单地解决,只需要在需要的地方加上'\n'
就行了:
file = open(filename, "w")
for value in list:
file.write(value.rstrip() + "\n")
file.close()