python阅读线w / o \ n?

时间:2009-02-03 23:23:57

标签: python file newline

这适用于所有平台吗?我知道Windows会做\ r \ n,并且记得听到mac会在\ linux下做\ r。我在Windows上运行这个代码所以看起来很好,但你们中的任何人都知道它的跨平台吗?

while 1:
    line = f.readline()
    if line == "":
        break
    line = line[:-1]
    print "\"" + line + "\""

3 个答案:

答案 0 :(得分:13)

首先,有universal newline support

第二:只使用line.strip()。如果要在行的开头或结尾保留任何空格,请使用line.rstrip('\r\n')

哦,

print '"%s"' % line

或至少

print '"' + line + '"'

可能看起来更好。

你可以迭代这样的文件中的行(这不会像文件一样在文件中间的空行上断开):

for line in f:
    print '"' + line.strip('\r\n') + '"'

如果您的输入文件足够短,您可以使用str.splitlines默认丢弃行结尾的事实:

with open('input.txt', 'rU') as f:
    for line in f.read().splitlines():
        print '"%s"' % line

答案 1 :(得分:4)

请改为尝试:

line = line.rstrip('\r\n')

答案 2 :(得分:0)

  

line = line [: - 1]

如果一行是文件的最后一行,则该行不能有尾随换行符。

如上所述,使用rstrip()尝试通用换行符。