0
with open(path) as f:
for line in f:
print line
path
是單行文件\xc2
的Python:從打印文件讀取「 XC2」有相同的值正常,但打印字符串變量失敗
當我運行此我得到
\xc2
現在讓我們改變這個
with open(path) as f:
for line in f:
var = '\xc2'
print var
當我運行它,我看到
UnicodeDecodeError: 'ascii', '\xc2d', 0, 1, 'ordinal not in range(128)'
然後我嘗試比較,所以我做
with open(path) as f:
for line in f:
line = line.strip()
line1 = '\xc2d'
# print line1
print line == line1
,我看到False
這到底是怎麼發生的?
你想要一個原始字符串。 ''\ xc2d''正在被轉義,所以它看起來像你想要的是'r'\ xc2d'',或''\\ xc2d'' – mgilson 2012-07-27 20:16:02
@JoelCornett,它實際上被解釋爲字符碼0xc2(不是Unicode)其次是'd'。 'len('\ xc2d')'返回2. – 2012-07-27 20:35:11
@MarkRansom:糟糕你是對的。 – 2012-07-27 20:36:03