4

这适用于所有平台吗?我知道windows会\r\n,记得听到mac会\r而linux会\n。我在 Windows 上运行了这段代码,所以看起来不错,但你们中有人知道它是否跨平台吗?

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

3 回答 3

13

首先,有通用的换行支持

第二:只需使用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
于 2009-02-03T23:34:39.820 回答
4

试试这个:

line = line.rstrip('\r\n')
于 2009-02-03T23:35:03.017 回答
0

线=线[:-1]

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

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

于 2009-02-04T02:05:33.743 回答