我正在阅读并追加到正在打开的文本文件中,并且每次运行我的Python程序时都会读取它。它基本上是一个字符串的日志。 问题是,当我最初写入空白文件时,必须包含action.write('\n')
以便下一行打印下一个字符串。如何附加到文件而不添加' n'?
但是,当我下次运行Python程序时读取文件时,它会读取“\ n”并将其连接到之前添加到列表中的元素。
这里就是基本上发生的事情:
pc = ["121", "343", "565", "787"]
with open(r"C:\tt.txt", "r+") as act:
curr=[]
for row in act:
if row == '\n':
pass
else:
curr.append(row)
for i in pc:
act.write(i)
act.write("\n")
print curr
>> curr = ['121\n', '343\n', '565\n', '787\n', '121\n', '343\n', '565\n', '787\n', '121\n', '343\n', '565\n', '787\n', '121\n', '343\n', '565\n', '787\n', '121\n', '343\n', '565\n', '787\n']
我真的难倒如何来解决这个问题。
如果行包含开头或结尾的空格则无法使用此删除最后一个字符。它们将被剥离以及换行符。 –
@MaksymPolshcha:真的!这个方法只有在没问题的时候才会起作用(对于问题中的行,它们可能只是数字)。 – icktoofay
@MaksymPolshcha'row.rstrip('\ n')'是最安全的,但方法仍然有效,但我们通常认为情况并非如此,只是简单地使用'.strip()',因为它更快 – jamylak