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

使用pd.read_csv读取CSV时报OSError: [Errno 22] Invalid argument怎么办

错误原因
  • 变量定义不符合预期:你声明的DATA_DIR变量实际存储的是test_1.csv的完整文件路径,不是目标文件夹的路径,后续直接做字符串拼接会得到两个完整路径拼接后的无效字符串,系统无法识别该路径,所以触发OSError: [Errno 22] Invalid argument报错。
  • 路径拼接方式不规范:不同操作系统的路径分隔符存在差异,直接用+拼接路径字符串容易出现兼容问题,应该使用Python内置的路径处理工具拼接。
修复方案

方案1:直接声明两个文件的完整路径(适合新手快速验证)

import pandas as pd

test1_path = r'C:\Users\steve\Desktop\Data\test_1.csv'
test2_path = r'C:\Users\steve\Desktop\Data\test_2.csv'

df = pd.read_csv(test1_path, parse_dates=['DATE', 'datadate'])
q = pd.read_csv(test2_path, index_col=0, parse_dates=[1, 3])

方案2:拆分目录与文件名(适合后续批量处理同文件夹下的文件)

import pandas as pd
import os

# 此处DATA_DIR为文件夹路径,不要写具体文件名
DATA_DIR = r'C:\Users\steve\Desktop\Data'
df = pd.read_csv(os.path.join(DATA_DIR, 'test_1.csv'), parse_dates=['DATE', 'datadate'])
q = pd.read_csv(os.path.join(DATA_DIR, 'test_2.csv'), index_col=0, parse_dates=[1, 3])

额外提示:第二个文件读取时的parse_dates=[1, 3]是按列位置识别日期字段,如果后续csv的列顺序调整会导致代码失效,建议直接使用字段名声明,比如parse_dates=['DATE', 'datadate'],可读性和稳定性更高。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 18:15:03