账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    Python以二进制模式写文件如何换行?
    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',但是这样做却不能换行。
    问题如下:

    1. 像上面的问题该如何解决?
    2. 如果不以二进制的方式,如何解决编码问题?(注:item项都是字符串

    学艺不精,麻烦各位大佬指点一二了!!!

    1
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 在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()

      这将不会创建任何换行符。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部