python

关注公众号 jb51net

关闭
首页 > 脚本专栏 > python > Python读取csv

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

作者:一晌小贪欢

我们再日常读取csv文件的时候经常会发现csv文件的格式有多种,所以这篇文章为大家介绍了Python如何实现读取csv文件时忽略文件的编码格式吧

1、背景介绍

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

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内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文