我想讓.txt
文件的每一行以"
結尾,但文件的編碼是gb2312
或gbk
,因爲中文是包含的。所以,我創建了一個名爲heheda.txt
文件,其內容如下(每行的末尾包含一個返程):如何將r'''添加到文件的每一行,如果它不以r結尾''''
從前有座山"
shan裏有個廟
"廟裏有個"
laohe尚
那我試過如下:
for line in open('heheda.txt', 'r'):
if not line[-2] == r'"':
print line
line = line[:-1] + r'"' + line[-1:]
print line
,並返回:
shan裏有個廟
shan裏有個廟"
laohe尚
laohe�"�
我不知道爲什麼年底的每一行是line[-2]
,因爲我已經試過line.endswith(r'"')
和line[-1] == r'"'
。第一個句子得到正確的格式,而第二個句子出錯了(�
)。
然後我試圖以二進制方式與rb
閱讀,這讓我再次讓我驚訝:
a_file = open(data_path+'heheda.txt', 'rb')
for line in a_file:
if line[-3] != r'"':
print line
line = line[:-2] + r'"' + line[-2:]
print line
,並返回:
shan裏有個廟
shan裏有個廟"
laohe尚
laohe�"��
這個時候,我必須使用line[-3] != r'"'
作爲判斷句子是否以"
結束的條件。 我無法弄清楚會發生什麼。 順便說一句,我在Windows7中使用python 2.7.11
有誰知道發生了什麼事?
更好地看到發生了什麼,使用打印再版(線),而不是打印線 –
謝謝你提醒我再版的'()'這讓我知道真的發生了什麼! –