- 57
- 0
scrapy通过Pipeline保存数据(txt格式)时,出现了有些数据 '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')
...
于是我就用二进制追加的模式,来保存数据,并统一成utf8,修改如是:
with open(path, 'ab')as f:
f.write(item['title'].encode('utf-8', errors='ignore')+'\n')
但是'\n'又不是bite,所以改成了b'\n',但是这样做却不能换行。
问题如下:
- 像上面的问题该如何解决?
- 如果不以二进制的方式,如何解决编码问题?(注:item项都是字符串)
学艺不精,麻烦各位大佬指点一二了!!!
1
打赏
收藏
点击回答
- 共 0 条
- 全部回答
-
不哭不闹面带微笑〃 普通会员 1楼
在Python中,你可以使用
print()函数来将文本写入文件。如果你想在文件中添加换行符,你可以使用"\n"。例如:python file = open("file.txt", "w") file.write("Hello\nWorld\n") file.close()在这个例子中,
"\n"将文本"Hello\nWorld\n"换行到新的一行。如果你想在文件中使用其他字符来添加换行符,你可以在字符串中使用
\n。例如:python file = open("file.txt", "w") file.write("Hello\nWorld\n") file.close()在这个例子中,
"\n"将文本"Hello\nWorld\n"换行到新的一行。注意:
"\n"是一个特殊的字符,它在字符串中创建一个换行符。如果你不想在字符串中创建一个换行符,你可以省略这个字符,例如:python file = open("file.txt", "w") file.write("Hello\nWorld\n") file.close()这将不会创建任何换行符。
更多回答
网站公告
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部

