Python:fileinput库和连接/换行符

时间:2013-06-05 14:07:03

标签: python file-io line-breaks

我是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

为什么意外断线以及如何解决?

非常感谢!

3 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

如果您修改f.write(line)行以阅读f.write(line.strip()),那么它将为您解决额外的空白问题。

答案 2 :(得分:0)

string.strip()将删除空格。

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

此外:

你是以非常不同的方式做到的。这样做的正确方法是使用字符串插值的多行字符串。