当前位置: 代码网 > it编程>前端脚本>Python > Python如何实现读取csv文件时忽略文件的编码格式

Python如何实现读取csv文件时忽略文件的编码格式

2025年03月04日 Python 我要评论
1、背景介绍我们再日常读取csv文件的时候经常会发现csv文件的格式有多种,常见的有【utf-8】\【gbk】\ 【ansi】格式,我们再读取的时候会加上encoding="xx"

1、背景介绍

我们再日常读取csv文件的时候经常会发现csv文件的格式有多种,常见的有【utf-8】\【gbk】\ 【ansi】格式,我们再读取的时候会加上encoding="xx"参数,为了,方便我们可以使用 chardet.detect()检测文件编码。

  • 编码检测:通过chardet自动检测文件编码,确保正确读取文件内容。
  • 异常处理:对可能出现的编码错误进行处理,提供备用的utf-8编码读取方案。
  • csv处理:使用标准库csv模块读取并打印csv文件内容,包括表头和数据行。

2、库的安装

用途安装
csvcsv文件的读写内置库无需安装

3、核心代码

①:到的编码格式

def detect_encoding(file_path):
    with open(file_path, 'rb') as f:
         raw_data = f.read()
         result = chardet.detect(raw_data)
         return result['encoding']

②:调用detect_encoding函数获取文件的编码格式

def main():
    file_path = '新建xlsx 工作表.csv'
    encoding = detect_encoding(file_path)

    try:
        read_csv(file_path, encoding)
    except unicodedecodeerror:
        # 如果检测到的编码格式读取失败,尝试使用 utf-8 编码读取
        try:
            read_csv(file_path, 'utf-8')
        except exception as e:
            print(f"读取文件时发生错误: {e}")
    except exception as e:
        print(f"读取文件时发生错误: {e}")
    

4、完整代码

# -*- coding: utf-8 -*-
'''
@project :测试 
@file    :test2_read_csv.py
@ide     :pycharm 
@author  :一晌小贪欢(278865463@qq.com)
@date    :2025/3/1 21:40 
'''

import csv
import chardet


def detect_encoding(file_path):
    with open(file_path, 'rb') as f:
        raw_data = f.read()
        result = chardet.detect(raw_data)
        return result['encoding']


def read_csv(file_path, encoding):
    with open(file_path, 'r', encoding=encoding) as f:
        reader = csv.reader(f)
        head = next(reader)
        print("表头", head)
        for row in reader:
            print(row)


def main():
    file_path = '新建xlsx 工作表.csv'
    encoding = detect_encoding(file_path)

    try:
        read_csv(file_path, encoding)
    except unicodedecodeerror:
        # 如果检测到的编码格式读取失败,尝试使用 utf-8 编码读取
        try:
            read_csv(file_path, 'utf-8')
        except exception as e:
            print(f"读取文件时发生错误: {e}")
    except exception as e:
        print(f"读取文件时发生错误: {e}")


if __name__ == "__main__":
    main()

到此这篇关于python如何实现读取csv文件时忽略文件的编码格式的文章就介绍到这了,更多相关python读取csv内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com