sqlite 如何正确插入不同编码的文本文件?

7eumitmz  于 2023-08-06  发布在  SQLite
关注(0)|答案(1)|浏览(119)

我有NetApp XCP生成的 *.txt文件和一个带有文件名列表的Excel文档。我试图将数据插入数据库并比较列file_name上的两个表。
每个文件都包含一些非utf-8字符。我不能忽略字符作为文件路径和文件名需要作为最终结果。我尝试了用UTF-8 ASCII MacRoman和其他一些模块chardet(脚本还没有完成)。文件名包含中文字符,当我插入到数据库中以'?”而不是。
我需要从不同的编码文件插入到数据库中,并比较匹配的文件名。我还需要带回原始路径和文件名,以便可以访问文件。

def upload_leaked_files():
    #df = pd.read_excel(LEAKED_FILES, sheet_name=0) #,  encoding_override='cp437') #not working with pd.read

    with open(LEAKED_FILES, encoding="MacRoman") as file: #MacRoman
        data = list(csv.reader(file, delimiter=","))
    LeakedFile.objects.all().delete()
    bulk_group = []
    for row in data:
        #print(type( row[0]),row[0])
        d = row[0] #.encode(encoding="utf-8")
        #print(type(d), d)

        bulk_group.append(LeakedFile(file=d))
    LeakedFile.objects.bulk_create(bulk_group, batch_size=100)

字符串
示例文件名:预批量检验证明NCS低线 Jmeter 预批量件质量明.doc

wfypjpf4

wfypjpf41#

我试过将编码设置为“utf8”,它似乎可以完成这项工作:
测试文件内容:

预批量检验证明NCS低线仪表预批量件质量明.doc,someothertext
预批量检验证明NCS低线仪表预批量件质量明.doc,othertext

字符串
代码:

with open('./test_file.csv', 'r', encoding='utf8') as input:
    file_content = [r.replace('\n', '').split(',') for r in input.readlines()]
    
    rows = [r for r in file_content]
    print(rows)


输出量:

[['预批量检验证明NCS低线仪表预批量件质量明.doc', 'someothertext'], ['预批量检验证明NCS低线仪表
预批量件质量明.doc', 'othertext']]


你的解释有什么遗漏吗?
Cheers:)

相关问题