在Windows上读取文件时,结果字符串中的运送字符丢失

时间:2011-05-18 11:04:32

标签: python windows io

当通过python在windows中读取txt文件时,在结果字符串中丢失了运输字符。

C:/text.txt

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

代码:

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'

你可以看到所有的马车字符都丢失了。 任何建议都表示赞赏。

感谢。

1 个答案:

答案 0 :(得分:6)

如果以文本模式打开文件,Windows行结尾\r\n会自动替换为标准行结尾\n。要防止这种情况发生,请以二进制模式打开文件:

input = open('c:/text.txt', 'rb')