python with open as f寫中文亂碼


python3和python2的寫法不一樣具體如下:

python3:

with open(r'd:\ssss.txt','w',encoding='utf-8') as f:

  f.write(u'中文')

 

python2中open方法是沒有encoding這個參數的,如果像python3一樣的寫法會報異常:TypeError: 'encoding' is an invalid keyword argument for this function

python2中需要加上:

import sys
reload(sys)
sys.setdefaultencoding('utf-8')
with open(r'd:\sss.txt','w') as f:
  f.write(unicode("\xEF\xBB\xBF", "utf-8"))#函數將\xEF\xBB\xBF寫到文件開頭,指示文件為UTF-8編碼。
  f.write(u'中文')
讀取文件
with open(r'd:\aaa.txt','r') as ff:
  a= ff.read().encode('gbk')#編碼為gbk輸出 控制台
  print a
 
或者還有一種寫法:
 
import io
with io.open(path,'w',encoding='utf-8') as f:
  f.write(unicode("\xEF\xBB\xBF", "utf-8"))#函數將\xEF\xBB\xBF寫到文件開頭,指示文件為UTF-8編碼。
  f.write(u'這是中文')
 
with open(r'd:\aaa.txt','r') as ff:
  a= unicode(ff.read(),'utf-8')#編碼為UTF-8輸出
  print a
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM