使用Pandas.read_csv时出现OSError: Initializing from file failed

在用pandas.read_csv()函数直接读取批量的包含中文名的CSV文件时,发生如下错误:

  File "D:\biancheng_language\Python\lib\site-packages\pandas\io\parsers.py", line 678, in parser_f
    return _read(filepath_or_buffer, kwds)
  File "D:\biancheng_language\Python\lib\site-packages\pandas\io\parsers.py", line 440, in _read
    parser = TextFileReader(filepath_or_buffer, **kwds)
  File "D:\biancheng_language\Python\lib\site-packages\pandas\io\parsers.py", line 787, in __init__
    self._make_engine(self.engine)
  File "D:\biancheng_language\Python\lib\site-packages\pandas\io\parsers.py", line 1014, in _make_engine
    self._engine = CParserWrapper(self.f, **self.options)
  File "D:\biancheng_language\Python\lib\site-packages\pandas\io\parsers.py", line 1708, in __init__
    self._reader = parsers.TextReader(src, **kwds)
  File "pandas\_libs\parsers.pyx", line 384, in pandas._libs.parsers.TextReader.__cinit__
  File "pandas\_libs\parsers.pyx", line 697, in pandas._libs.parsers.TextReader._setup_parser_source
OSError: Initializing from file failed

问题原因:

  1. 文件名里包含中文名;
  2. 传入参数是文件路径而非文件名

解决方案:
方案一:可在read_csv之前先用open()函数

f = open(analysis_output_path +'metrics.csv')
print('用read_csv读取的csv文件:', pd.read_csv(f))

方案二:不加open()函数,在read_csv里面设置engine参数。【engine=‘python’】

df=pd.read_csv(analysis_output_path +'metrics.csv',engine='python')
print('用read_csv读取的csv文件:', df)

亲测,均可用。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值