Python 包含漢字的檔案讀寫之每行末尾加上特定字元,

來源:互聯網
上載者:User

Python 包含漢字的檔案讀寫之每行末尾加上特定字元,

      最近,接手的項目裡,提供的資料檔案格式簡直讓人看不下去,使用pandas打不開,一直是io error.仔細查看,發現檔案中很多行資料是以"結尾,然而其他行缺失,因而需求也就很明顯了:判斷每行的結尾是否有",沒有的話,加上就好了。

採用倒敘的方式好了,畢竟很多人需要的只是一個快速的解決方案,而不是一個why. 解決方案如下:

 b = open('b_file.txt', w) with open('a_file.txt', 'r') as lines:  for line in lines:   line = line.strip()   if not line.endswith(r'"'):    line += r'"'   line += '\n'   b.write(line)  b.close() a.close()

其中整個過程的關鍵在於

line = line.strip()

  之前我偷懶,直接使用省去了上面那行,結果在判斷條件栽了跟頭,程式認為每一行都不是以"結尾:

if not line.endswith(r'"')

硬著頭皮試上去,重寫:

for line in open(data_path+'heheda.txt', 'r'): if not line[-2] == r'"':  print line  line = line[:-1] + r'"' + line[-1:]  print line

      此時判斷條件為 if not line[-2] == r'"',這樣才能得到除最後一行之外的正確結果。眾所周知的原因,在windows系統中,檔案的斷行符號符是"\r\n",因而,在沒有strip()處理好斷行符號符的時候,需要手動在每一行的結尾前移一個位元組進行判斷每行的末尾。而對於檔案的最後一行,一般情況下不是斷行符號符作為結尾,畢竟不要換行了嘛。因而line[-2]則定位到了最後一個漢字的中間,將\xx\xx,硬寫成了\xx"\xx,使得最後一個字顯示錯誤。

以上所述是小編給大家介紹的Python 包含漢字的檔案讀寫之每行末尾加上特定字元,希望對大家有所協助,如果大家有任何疑問請給我留言,小編會及時回複大家的。在此也非常感謝大家對幫客之家網站的支援!

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.