2011-05-18 8 views
0

WindowsのtxtファイルをPythonで読み込むと、結果の文字列でキャリッジ文字が失われます。Windows上でファイルを読み込むときに結果の文字列にキャリッジ文字が失われる

C:コード

aaa\r\nbbb\r\nccc\r\nddd 

/text.txt:

input = open('c:/text.txt') 
str = input.read() 
import repr 
for i,ch in enumerate(str): 
    print i,ord(ch),repr.repr(ch) 

結果:

0 97 'a' 
1 97 'a' 
2 97 'a' 
3 10 '\n' 
4 98 'b' 
5 98 'b' 
6 98 'b' 
7 10 '\n' 
8 99 'c' 
9 99 'c' 
10 99 'c' 
11 10 '\n' 
12 100 'd' 
13 100 'd' 
14 100 'd' 

あなたはすべてのキャリッジの文字が失われていることがわかります。 ご迷惑をおかけして申し訳ございません。

ありがとうございました。

答えて

6

ファイルをテキストモードで開くと、Windowsの行末\r\nは自動的に標準行末\nに置き換えられます。これを防ぐには、ファイルをバイナリモードで開きます。

+0

あなたは正しいです。どうもありがとう。 – woods

+0

-1いいえ、彼は間違っています。 Python 2.7では 'ValueError:モード文字列は 'r'、 'w'、 'a'または 'U'のいずれかで始まらなければならず、 'b'ではなく ' –

+0

@John:これを指摘してくれてありがとう。私は本当にもっと注意する必要があります! –

関連する問題