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=

我正在读取并附加到一个文本文件,该文件在每次Python程序运行时都会被打开和读取。它基本上是一个字符串日志。 问题是,当我最初写入空白文件时,我必须包含<代码> Actudio。('\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']
我真的很难受,不知道该怎么解决这个问题

剥去线条:

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:真的!这种方法只有在没有问题的情况下才有效(对于问题中的行,可能只是数字)。@maksymolshcha
row.rstrip('\n')
是最安全的,这种方法仍然有效,但是我们通常认为不是这样,只需使用普通的
.strip()
,因为它很快,这是完美的。不知道我怎么没想到这个。要确保只删除空格而不删除新行字符将是
row=row.replace(“”,)
correct?@iarcfsil,它删除字符串中的所有空格