2009-11-18 85 views
1
for line in file: 
    print line 

在代码中,当我将其更改为上面:如何读取行(从一个文件),然后在Python中追加+打印?

for line in file: 
    print line + " just a string" 

这仅追加“只是一个字符串”的最后一行

PS:Python的新手

+0

能否请您发表引起该问题的实际代码,包括“什么东西?”谢谢 – 2009-11-18 21:27:45

+0

如果你也包含这段代码的实际输出,那将会很有用。 – 2009-11-18 21:41:18

回答

5

遍历文件包括行结尾,所以只删除它们:

for line in file: 
    print line.rstrip("\n"), "something" 

请注意,print会附加自己的换行符,所以即使没有附加“something”,您也可以执行此操作(或使用sys.stdout.write而不是print)。如果要删除所有尾随空格(例如空格和制表符),也可以使用line.rstrip()

文档:

文件支持迭代器协议。每次迭代返回与file.readline()相同的结果,并且当readline()方法返回空字符串时迭代结束。

+0

谢谢,你的回答是有用的,在文本文件中有一些问题(因为我从网页复制 - > excel - >文本文件),所以它追加到最后一行,但肯定我需要rstrip();) – Vishal 2009-11-18 22:06:03

0

通过迭代接收该生产线包括在最后的换行符 - 所以,如果你想“东西”要在相同的附加你需要切断这条线。

for line in file: 
    print line[:-1] + " something" 
+0

这如果文件没有换行符,则通过删除数据来中断文件的最后一行。 – 2009-11-18 21:33:00

0

这是你如何能在每行的末尾添加“东西”:

import fileinput 

for line in fileinput.input("dat.txt"): 
    print line.rstrip(), ' something' 

如果要追加“东西”排队,然后打印行:

import fileinput 

for line in fileinput.input("dat.txt"): 
    line = line.rstrip() + ' something' 
    print line 
    # now you can continue processing line with something appended to it 

dat.txt文件:

> cat dat.txt 
one 
two and three 
four - 
five 
. 

输出:

> ./r.py 
one something 
two and three something 
four - something 
five something 
. something 
+0

我想追加字符串“东西”的行和打印。 – Vishal 2009-11-18 21:51:28

相关问题