You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python2.7读取CSV到列表时数据不完整且报IOError[Errno0]求助

解决Python2.7读取CSV时的IOError Errno 0及数据不完整问题

我之前在Windows 10上用Python2.7处理CSV文件时,也碰到过几乎一模一样的问题,结合你的情况,给你几个实用的排查和解决方向:

1. 先解决路径转义的坑

你当前的文件路径用了单个反斜杠\,在Python字符串里这会被当成转义字符(比如\w、\M都会被解析成特殊字符),这很可能是引发IO错误的根源。可以用三种方式修正:

  • 改用双反斜杠:'G:\\work and courses\\Medrar\\heirarchies\\hier1.csv'
  • 用原始字符串(推荐):r'G:\work and courses\Medrar\heirarchies\hier1.csv'
  • 直接用正斜杠:'G:/work and courses/Medrar/heirarchies/hier1.csv'

2. 调整CSV模块的文件打开方式

Python2.7的csv模块和io.open的文本模式兼容性不太好,尤其是Windows下的CRLF换行符处理,容易导致数据截断或IO错误。试试用内置open的二进制模式打开文件,这是Python2.7官方推荐的CSV读取方式:

import csv

csv_filename = r'G:\work and courses\Medrar\heirarchies\hier1.csv'
directories_lst = []

def fn():
    global directories_lst
    with open(csv_filename, 'rb') as f:  # 二进制模式打开,csv模块自动处理换行
        reader = csv.reader(f)
        directories_lst = [row for row in reader]

3. 排查文件被占用的情况

Windows下Errno 0有时候是个“哑巴错误”——实际是文件被其他进程锁定了(比如你用Excel打开着这个CSV文件没关闭),系统没法正常读取。先确认没有其他程序在使用这个CSV,关闭后再运行代码试试。

4. 优化Pandas的读取参数

如果用pandas.read_csv,可以指定引擎和编码参数,避免格式或编码问题导致的数据不完整:

import pandas as pd

csv_filename = r'G:\work and courses\Medrar\heirarchies\hier1.csv'
# 用python引擎,指定Windows常用的gbk编码(根据你的文件实际编码调整)
df = pd.read_csv(csv_filename, engine='python', encoding='gbk')
directories_lst = df.values.tolist()

5. 检查CSV文件本身的格式问题

数据不完整也可能是文件自身有格式错误,比如某行有未闭合的引号,导致CSV读取器把多行合并成一行。你可以用文本编辑器打开CSV文件,检查有没有异常的引号、换行符;如果确定没有引号需求,也可以强制CSV模块忽略引号:

reader = csv.reader(f, quoting=csv.QUOTE_NONE)

内容的提问来源于stack exchange,提问作者icarus

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 03:36:25