1

我是 Python 新手,所以请多多包涵。

我一直在努力解决以下问题,希望您能提供帮助。

我正在尝试从文本文件中读取单词(每行一个单词),添加一些文本并写入输出文件“结果”。

所以如果我的输入是:

cat
dog
horse

我的代码是这样的(当然真实的代码更严重)

import sys, fileinput

for line in fileinput.input(sys.argv[1]):

     f = open('results','a+')
     f.write('the following: "')
     f.write(line)
     f.write('" is an animal')
     f.write('\n')
     f.write('you could find on a farm')
     f.write('\r\n')
     f.close()

如果输入文件中只有一个单词,则输出很好。否则,如果有三个,前两个如下所示,但最后一个很好:

The following:"
cat" is an animal
you could find on a farm

所以在这个例子中猫和狗看起来像上面但是马会很好。

我使用的命令是python myfile.py myinput.txt

为什么出现意外的换行符,我该如何解决?

非常感谢!

4

3 回答 3

1

输入文件中的换行符被读入您的数据 - 您可以通过以下方式删除它们:

for line in fileinput.input(sys.argv[1]):
    line = line.strip()
    ...
于 2013-06-05T14:12:52.737 回答
0

如果您修改您的f.write(line)行以读取f.write(line.strip()),那么它将为您消除额外的空白。

于 2013-06-05T14:17:26.180 回答
0

string.strip()将去除空格。

字符串是不可变的 - 因此请确保在真实代码中重新分配给变量。

还:

您正在以非常不合常规的方式进行操作。这样做的正确方法是使用字符串插值的多行字符串。

于 2013-06-05T14:30:15.540 回答