4

これはすべてのプラットフォームで機能しますか? Windows が \r\n することは知っていますし、Linux が \n するのに対して Mac が \r するのを聞いたことを覚えています。このコードを Windows で実行したので問題ないようですが、クロスプラットフォームかどうか知っている人はいますか?

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

3 に答える 3

13

まず第一に、普遍的な改行サポートがあります

2番目: を使用するだけ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 に答える