dakelqlq 2019-11-03 19:41 采纳率: 100%
浏览 587
已采纳

python怎样把文件夹中的多个中文txt文件,处理成一个.json文件?

图片说明变成乱码了。

图片说明

节选了文件夹中的几个中文文本文档,如同上面的形式,怎么能处理成一个json文件呢?看到网上说为了不报错,得转成utf-8格式,/r/n 替换成/n而且得加上 ensure__ascii=False,但是我不知道怎么加,谢谢各位前辈了!

  • 写回答

2条回答 默认 最新

  • bj_0163_bj 2019-11-05 17:33
    关注

    文本内容:
    安徽
    江苏
    浙江

    上海

    with open("F:/test/test.txt","rb") as f:
    print(f.read())
    输出:
    b'\xe5\xae\x89\xe5\xbe\xbd\n\xe6\xb1\x9f\xe8\x8b\x8f\n\xe6\xb5\x99\xe6\xb1\x9f\n\n\xe4\xb8\x8a\xe6\xb5\xb7'

    with open("F:/ftp/downloads/downloadfile/test.txt","rb") as f:
    print(f.read().decode('utf-8'))
    输出:
    安徽
    江苏
    浙江

    上海

    with open("F:/ftp/downloads/downloadfile/test.txt","rb") as f:
    lines=f.readlines()
    a=[]
    for line in lines:
    line=line.strip()
    a.append(line.decode('utf-8'))
    print(''.join(a))
    输出:
    安徽江苏浙江上海

    够清楚了吧?
    写个循环把所有txt读一遍,存成字典就可以了。

    
    import os
    import json  
    filelist=os.listdir('F:/test1') ##获取txt所在文件夹的所有文件,我放了三个txt,格式跟上面差不多
    
    txts=[]
    ##循环追加到list中
    for i in filelist:
        with open("F:/test1/"+i,"rb") as f:
            lines=f.readlines()
            a=[]
            for line in lines:
                line=line.strip()
                a.append(line.decode('utf-8'))
            txt=''.join(a)
            txts.append(txt)
            f.close()
    ##输出:['安徽江苏浙江上海', '南京无锡苏州南通', '杭州宁波温州']
    #存入json文件
    with open('txts.json', 'w') as f:
        json.dump(txts, f)
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 metadata提取的PDF元数据,如何转换为一个Excel
  • ¥15 关于arduino编程toCharArray()函数的使用
  • ¥100 vc++混合CEF采用CLR方式编译报错
  • ¥15 coze 的插件输入飞书多维表格 app_token 后一直显示错误,如何解决?
  • ¥15 vite+vue3+plyr播放本地public文件夹下视频无法加载
  • ¥15 c#逐行读取txt文本,但是每一行里面数据之间空格数量不同
  • ¥50 如何openEuler 22.03上安装配置drbd
  • ¥20 ING91680C BLE5.3 芯片怎么实现串口收发数据
  • ¥15 无线连接树莓派,无法执行update,如何解决?(相关搜索:软件下载)
  • ¥15 Windows11, backspace, enter, space键失灵