在Spyder中使用Pandas无法将本地CSV转为DataFrame求助
问题:Pandas读取本地CSV文件时触发OSError错误
环境信息
- Spyder(Python 3.8.10 64-bit | Qt 5.15.2 | PyQt5 5.15.10 | Windows 10 (AMD64))
测试代码
# 导入pandas模块 import pandas as pd # 创建DataFrame df = pd.read_csv("C:\Test\test.txt") # 输出DataFrame print(df)
报错信息
df = pd.read_csv("C:\Test\test.txt") Traceback (most recent call last): Cell In[114], line 1 df = pd.read_csv("C:\Test\test.txt") File C:\Program Files\Spyder\pkgs\pandas\io\parsers\readers.py:912 in read_csv return _read(filepath_or_buffer, kwds) File C:\Program Files\Spyder\pkgs\pandas\io\parsers\readers.py:577 in _read parser = TextFileReader(filepath_or_buffer, **kwds) File C:\Program Files\Spyder\pkgs\pandas\io\parsers\readers.py:1407 in __init__ self._engine = self._make_engine(f, self.engine) File C:\Program Files\Spyder\pkgs\pandas\io\parsers\readers.py:1661 in _make_engine self.handles = get_handle( File C:\Program Files\Spyder\pkgs\pandas\io\common.py:859 in get_handle handle = open( OSError: [Errno 22] Invalid argument: 'C:\\Test\test.txt'
补充说明
刚接触编程,执行代码前曾尝试运行!pip install ipython-sql,Spyder返回以下内容但问题未解决:
Defaulting to user installation because normal site-packages is not writeable Requirement already satisfied: ipython-sql in c:
问题原因与解决方法
问题出在Windows路径的转义字符处理上:在Python字符串中,\t是代表制表符的转义序列,所以你写的"C:\Test\test.txt"会被Python解析成C:\\Test(\T不是转义序列,保留原样)加上制表符,再加上est.txt,最终变成系统无法识别的无效路径。
你可以用以下三种方式修正路径:
- 使用双反斜杠:把每个
\替换成\\,避免转义解析df = pd.read_csv("C:\\Test\\test.txt") - 使用原始字符串:在字符串前加
r,让Python跳过转义序列解析df = pd.read_csv(r"C:\Test\test.txt") - 使用正斜杠:Windows系统同样支持正斜杠作为路径分隔符
df = pd.read_csv("C:/Test/test.txt")
另外,ipython-sql的安装操作和本次路径问题无关,不需要纠结该操作的结果。
内容的提问来源于stack exchange,提问作者Englishman Bob
相关产品推荐
相关产品推荐

