我是python的新手。我有一个程序,该程序读取具有不同字符的输入文件,然后将该文件中的所有唯一字符写入到输出文件中,并且每个字符之间只有一个空格。问题在于最后一个字符之后有一个多余的空间(在换行符之前)。如何删除?

我的代码:

import sys
inputName = sys.argv[1]
outputName = sys.argv[2]

infile = open(inputName,"r",encoding="utf-8")
outfile = open(outputName,"w",encoding="utf-8")
result = []
for line in infile:

   for c in line:
       if c not in result:
           result.append(c)
           outfile.write(c.strip())

          if(c == ' '):
             pass
          else:
             outfile.write(' ')

outfile.write('\n')

最佳答案

使用outfile.write(' ')行,在每个字符后写一个空格(除非该字符是一个空格)。因此,您必须避免写最后一个空格。现在,在完成阅读之前,您无法确定是否有任何给定的字符是最后一个字符,所以这不像您可以放入if语句来测试它,但是有几种方法可以解决该问题:


在字符c之前而不是后面写空格。这样,您必须跳过的空间就是第一个字符之前的空格,并且您绝对可以使用if语句和布尔变量来标识。如果这样做,请确保如果第一个c或第二个result本身是空格,请检查是否获得正确的结果。
或者,您可以避免在最后写任何东西。只需保存您看到的所有字符-您已经在列表中进行了此操作-并一次性将它们全部写入。您可以使用

' '.join(strings)


将字符串列表(在本例中为您的字符)之间用空格连接在一起,这将自动省略尾随空格。

关于python - 如何在python中的换行符之前从行尾删除多余的空间?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46625225/

10-12 17:39
查看更多