当前位置:   article > 正文

python读取包含中文的txt_python从d盘中读取"姓氏.txt",再从d盘中读取"汉字.txt",随机抽取姓氏和汉字组成20

python从d盘中读取"姓氏.txt",再从d盘中读取"汉字.txt",随机抽取姓氏和汉字组成20

读取包含汉字的文本文件,需要注意文件的编码格式
如果文件是 UTF-8 编码格式,则可以使用 Python 内置的 open 函数读取文件。例如:

with open('file.txt', encoding='utf-8') as f:
    text = f.read()
  • 1
  • 2

如果文件是 GBK 或者其他编码格式,则需要在 open 函数中指定正确的编码格式,例如:

with open('file.txt', encoding='gbk') as f:
    text = f.read()
  • 1
  • 2

如果不知道文件的编码格式,则可以使用第三方模块 chardet 来检测文件的编码格式。例如:

import chardet

with open('file.txt', 'rb') as f:
    data = f.read()

encoding = chardet.detect(data)['encoding']

with open('file.txt', encoding=encoding) as f:
    text = f.read()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

在上述代码中,我们首先以二进制模式打开文件,并读取文件内容。然后,使用 chardet 模块检测文件的编码格式,并将检测出来的编码格式传递给 open 函数,以正确的编码格式读取文件内容。

需要注意的是,在读取文件时,应该始终在 open 函数中指定要使用的文件编码格式,以避免出现乱码或者解码错误。

例如:txt中的内容:
在这里插入图片描述

with open(txt_path, 'rb') as f:
    data = f.readlines()
    print(len(data))
    print(type(data))
    print(data)
  • 1
  • 2
  • 3
  • 4
  • 5

输出:
在这里插入图片描述

使用第三方模块 chardet 来检测文件的编码格式

import chardet
txt_path = "xxx"
with open(txt_path, 'rb') as f:
    data = f.readlines()
    print(len(data))
    print(type(data))
    print(data)

encoding = chardet.detect(data[0])['encoding']
with open(txt_path, encoding=encoding) as f:
    data = f.readlines()
    print(data)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

输出:
在这里插入图片描述
特别注意:

这行代码中data[0], 如果使用data即: encoding = chardet.detect(data)['encoding']
  • 1
encoding = chardet.detect(data)['encoding']
会报错为:
TypeError: Expected object of type bytes or bytearray, got: <class 'list'>
  • 1
  • 2
  • 3
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Monodyee/article/detail/140800
推荐阅读
相关标签
  

闽ICP备14008679号