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

OSError: [Errno 36]文件名过长 Python包内txt文件pandas读取问题

问题根因

你当前代码触发报错的核心原因是逻辑错误,和操作系统配置无关:
你将librebook.txt的全部内容读取出来赋值给input_file,再把这个内容字符串传给pd.read_csv(),但pd.read_csv()的第一个参数如果传入字符串类型,默认会把它识别为文件路径,而不是CSV内容本身,相当于把整份文件的内容当做路径字符串传入,自然触发文件名过长的报错。

解决方案

两种方案均不需要修改操作系统配置,也不需要调用.readlines()方法,纯代码调整即可解决:

方案1:直接传入文件对象(最简洁)

pd.read_csv原生支持直接传入可读的文件对象,不需要提前读取文件内容,修改后代码如下:

from importlib_resources import open_text
import pandas as pd

with open_text('package.data', 'librebook.txt') as f:
    dataset = pd.read_csv(f)

方案2:用StringIO包装已读取的文本内容

如果你的业务逻辑需要先拿到完整文本内容做其他处理,再喂给pandas,可以用Python标准库的io.StringIO把字符串内容包装成类文件对象,pd.read_csv会自动识别它为内容而非路径,修改后代码如下:

from importlib_resources import open_text
import pandas as pd
from io import StringIO

with open_text('package.data', 'librebook.txt') as f:
    input_file = f.read()

dataset = pd.read_csv(StringIO(input_file))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 17:06:03