为了账号安全,请及时绑定邮箱和手机立即绑定

Python以二进制模式写文件如何换行?

Python以二进制模式写文件如何换行?

慕森王 2019-05-20 17:30:06
scrapy通过Pipeline保存数据(txt格式)时,出现了有些数据'gbk'codeccan'tencodecharacter,代码如下。classTxtPipeline(object):defprocess_item(self,item,spider):path=os.getcwd()filename=path+'\data\%s.txt'%item['classic']withopen(filename,'a')asf:f.write(item['title']+'\n')f.write(item['time']+'\n')f.write(item['text']+'\n')...于是我就用二进制追加的模式,来保存数据,并统一成utf8,修改如是:withopen(path,'ab')asf:f.write(item['title'].encode('utf-8',errors='ignore')+'\n')但是'\n'又不是bite,所以改成了b'\n',但是这样做却不能换行。问题如下:像上面的问题该如何解决?如果不以二进制的方式,如何解决编码问题?(注:item项都是字符串)学艺不精,麻烦各位大佬指点一二了!!!
查看完整描述

2 回答

?
明月笑刀无情

TA贡献1828条经验 获得超4个赞

withopen(path,'w')asf:
为什么不用w直接写呢?这个uft8就可以直接写进txt文件了啊,为啥要用二进制?
                            
查看完整回答
反对 回复 2019-05-20
?
慕村225694

TA贡献1880条经验 获得超4个赞

withopen(file,mode='a',encoding='utf-8')asf:
追加模式不会删除一切写入的哟如果要写入的字符一开始是utf-8编码,否则就要转一下编码打开文件的时候指定编码就好了
                            
查看完整回答
反对 回复 2019-05-20
  • 2 回答
  • 0 关注
  • 1984 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信