在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問(wèn)答/人工智能  Python/ Python以二進(jìn)制模式寫文件如何換行?

Python以二進(jìn)制模式寫文件如何換行?

scrapy通過(guò)Pipeline保存數(shù)據(jù)(txt格式)時(shí),出現(xiàn)了有些數(shù)據(jù) 'gbk' codec can't encode character,代碼如下。

class TxtPipeline(object):
    def process_item(self,item,spider):
        path=os.getcwd()
        filename = path + '\data\%s.txt'%item['classic']
        with open(filename, 'a')as f:
            f.write(item['title'] + '\n')
            f.write(item['time'] + '\n')
            f.write(item['text'] + '\n')
        ...

于是我就用二進(jìn)制追加的模式,來(lái)保存數(shù)據(jù),并統(tǒng)一成utf8,修改如是:

with open(path, 'ab')as f:
        f.write(item['title'].encode('utf-8', errors='ignore')+'\n')
   

但是'\n'又不是bite,所以改成了b'\n',但是這樣做卻不能換行。
問(wèn)題如下:

  1. 像上面的問(wèn)題該如何解決?
  2. 如果不以二進(jìn)制的方式,如何解決編碼問(wèn)題?(注:item項(xiàng)都是字符串

學(xué)藝不精,麻煩各位大佬指點(diǎn)一二了?。。?/p>

回答
編輯回答
莫小染
with open(file,mode='a',encoding='utf-8') as f:

追加模式不會(huì)刪除一切寫入的喲
如果要寫入的字符一開(kāi)始是utf-8編碼,否則就要轉(zhuǎn)一下編碼
打開(kāi)文件的時(shí)候指定編碼就好了

2017年3月19日 12:39
編輯回答
雨蝶
with open(path, 'w')as f:

為什么不用w直接寫呢?這個(gè)uft8就可以直接寫進(jìn)txt文件了啊,為啥要用二進(jìn)制?

2017年5月9日 16:36