Python 如何附加到文件而不添加'\n';?
我正在读取并附加到一个文本文件,该文件在每次Python程序运行时都会被打开和读取。它基本上是一个字符串日志。 问题是,当我最初写入空白文件时,我必须包含<代码> Actudio。('\n)以便下一行打印下一个字符串。 但是,当我下次运行Python程序时读取文件时,它会读取“\n”,并连接到上一个元素,该元素被添加到列表中 以下是基本情况:Python 如何附加到文件而不添加'\n';?,python,file-io,Python,File Io,我正在读取并附加到一个文本文件,该文件在每次Python程序运行时都会被打开和读取。它基本上是一个字符串日志。 问题是,当我最初写入空白文件时,我必须包含 Actudio。('\n)以便下一行打印下一个字符串。 但是,当我下次运行Python程序时读取文件时,它会读取“\n”,并连接到上一个元素,该元素被添加到列表中 以下是基本情况: pc = ["121", "343", "565", "787"] with open(r"C:\tt.txt", "r+") as act: curr=
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']
我真的很难受,不知道该怎么解决这个问题 剥去线条:
for row in act:
row = row.strip()
if row:
curr.append(row)
脱线:
for row in act:
row = row.strip()
if row:
curr.append(row)
你可以用
for line in open(somefile):
line = line.strip()
用于删除尾随行结尾。您可以使用
for line in open(somefile):
line = line.strip()
用于删除尾随行结尾。只需删除每行的最后一个字符
for row in act:
row = row[:-1]
if row:
curr.append(row)
只需删除每行的最后一个字符
for row in act:
row = row[:-1]
if row:
curr.append(row)
如果一行包含前导空格或尾随空格,这将不起作用。他们将被剥夺以及新线人物。@MaksymPolshcha:真的!这种方法只有在没有问题的情况下才有效(对于问题中的行,可能只是数字)。@maksymolshcha
row.rstrip('\n')
是最安全的,这种方法仍然有效,但是我们通常认为不是这样,只需使用普通的.strip()
,因为它很快,这是完美的。不知道我怎么没想到这个。要确保只删除空格而不删除新行字符将是row=row.replace('',)
correct?@iarcfsil删除字符串中的任何空格如果一行包含前导或尾随空格,则此操作无效。他们将被剥夺以及新线人物。@MaksymPolshcha:真的!这种方法只有在没有问题的情况下才有效(对于问题中的行,可能只是数字)。@maksymolshcharow.rstrip('\n')
是最安全的,这种方法仍然有效,但是我们通常认为不是这样,只需使用普通的.strip()
,因为它很快,这是完美的。不知道我怎么没想到这个。要确保只删除空格而不删除新行字符将是row=row.replace(“”,)
correct?@iarcfsil,它删除字符串中的所有空格