File "C:\Users\mjy\AppData\Roaming\Python\Python310\site-packages\pandas\io\parsers\readers.py", line 1026, in read_csv return _read(filepath_or_buffer, kwds) File "C:\Users\mjy\AppData\Roaming\Python\Python310\site-packages\pandas\io\parsers\readers.py", line 620, in _read parser = TextFileReader(filepath_or_buffer, **kwds) File "C:\Users\mjy\AppData\Roaming\Python\Python310\site-packages\pandas\io\parsers\readers.py", line 1620, in __init__ self._engine = self._make_engine(f, self.engine) File "C:\Users\mjy\AppData\Roaming\Python\Python310\site-packages\pandas\io\parsers\readers.py", line 1880, in _make_engine self.handles = get_handle( File "C:\Users\mjy\AppData\Roaming\Python\Python310\site-packages\pandas\io\common.py", line 873, in get_handle handle = open( FileNotFoundError: [Errno 2] No such file or directory: 'D/桌面/clinical_trial_data.csv'
时间: 2025-08-16 18:13:53 浏览: 2
<think>好的,我现在需要帮助用户解决在使用Pandas的read_csv函数时遇到的FileNotFoundError问题。用户提到错误信息是“Errno 2 No such file or directory”,这说明文件路径有问题。我需要仔细分析可能的原因,并给出系统性的解决方案。
首先,用户之前的提问中,我给出了关于路径验证、编码处理、异常行定位等解决方案。但用户现在遇到的是文件找不到的问题,应该属于基础排查步骤中的路径问题。我需要确认用户是否正确检查了路径的存在和可读性。
用户提供的引用内容里有一个示例代码,其中使用了os.path.exists和os.access来验证路径。我应该再次强调这一点,因为这是最常见的错误原因。可能用户的中文路径或者特殊字符导致问题,或者文件确实不在指定位置。
接下来,我要考虑不同操作系统下的路径格式差异。比如,Windows使用反斜杠,而Python中可能需要转义或者使用原始字符串。建议用户使用绝对路径,并演示如何正确格式化路径字符串,比如使用双反斜杠或正斜杠。
另外,用户可能混淆了当前工作目录,导致相对路径不正确。需要提醒用户检查当前工作目录,可以使用os.getcwd(),并确保文件路径是相对于该目录的正确路径。或者建议使用绝对路径来避免混淆。
还有一种可能是文件名或扩展名拼写错误,比如.csv写成.txt,或者有隐藏的后缀(如“数据.csv.csv”)。需要建议用户仔细检查文件名,并显示如何列出目录下的文件来确认。
此外,如果文件被其他程序占用,可能导致无法读取。虽然这种情况较少,但也可以提醒用户关闭可能占用文件的程序。
最后,总结解决方案,分步骤指导用户逐一排查,确保路径正确、权限足够、文件名无误。同时,给出代码示例,帮助用户直接测试和验证。
需要确保回答结构清晰,分点列出,并给出具体的代码示例,方便用户操作。同时,关联用户之前的提问,引用之前的建议,比如使用pathlib处理中文路径,或者使用os模块检查路径存在性。还要注意使用中文回答,符合用户要求,并避免使用Markdown格式,保持自然的口语化表达。</think>针对$pandas$的$read\_csv$函数报错`FileNotFoundError: [Errno 2] No such file or directory`问题,以下是系统性解决方案:
---
### 一、核心验证流程(90%问题集中区)
1. **绝对路径验证**
```python
import os
path = r"D:\data\测试数据.csv" # 注意原始字符串标识r
print("路径存在:", os.path.exists(path)) # 必须返回True
print("可读权限:", os.access(path, os.R_OK)) # 必须返回True
```
⚠️ 若路径含中文或特殊符号:
```python
from pathlib import Path
safe_path = Path('D:/文档/销售数据.csv').resolve() # 自动处理路径标准化
df = pd.read_csv(safe_path)
```
2. **操作系统差异验证**
Windows路径需注意:
```python
# 错误示范(反斜杠未转义)
path = "C:\new_folder\data.csv" # 会被解析为换行符\n
# 正确写法(任选其一)
path = r"C:\new_folder\data.csv" # 原始字符串
path = "C:/new_folder/data.csv" # 正斜杠兼容写法
path = "C:\\new_folder\\data.csv" # 双反斜杠转义
```
---
### 二、工作目录陷阱排查
1. **检查当前工作目录**
```python
import os
print("当前工作目录:", os.getcwd()) # 输出形如 C:\PythonProjects
```
若文件路径是相对路径(如`data/file.csv`),需确保相对路径基于当前工作目录成立
2. **动态定位文件技巧**
```python
# 方法1:脚本文件所在目录为基准
import sys
script_dir = Path(sys.argv[0]).parent
csv_path = script_dir / 'data' / 'data.csv'
# 方法2:Jupyter环境专用
from IPython.display import display
display(Path('.').resolve()) # 显示Jupyter内核的当前目录
```
---
### 三、高级定位技巧
#### 1. 文件搜索验证
```python
def find_file(filename, root='D:\\'):
for path in Path(root).rglob(filename):
print("找到文件:", path.resolve())
return str(path)
raise FileNotFoundError
try:
real_path = find_file("数据.csv") # 自动搜索全盘
except FileNotFoundError:
print("⚠️ 文件未找到,请检查文件名是否包含隐藏扩展名")
```
#### 2. 文件名混淆检测
常见错误模式:
```python
# 错误案例:文件名实际为"data.csv.txt"
with open(path, 'w') as f:
f.write("test") # Windows默认添加.txt扩展名
# 检测真实文件名
print([f.name for f in Path('.').iterdir() if 'data' in f.name])
```
---
### 四、特殊场景解决方案
| 错误类型 | 解决方案 | 验证代码片段 |
|-------------------------|------------------------------------------|---------------------------------|
| 网络映射驱动器 | 使用`subst`命令创建虚拟驱动器 | `subst Z: "\\server\share"` |
| 云同步文件状态异常 | 检查文件是否处于"仅在线"模式 | 查看OneDrive/网盘客户端同步状态 |
| 防病毒软件拦截 | 临时禁用实时文件扫描 | 添加例外目录到杀毒软件白名单 |
| 内存盘/RAM Disk | 检查内存盘挂载状态 | `fsutil fsinfo drives` |
---
### 五、终极验证方案
若仍无法定位问题,使用系统级API追踪:
```python
import ctypes
# Windows系统调用追踪
kernel32 = ctypes.WinDLL('kernel32', use_last_error=True)
path = "D:/测试.csv"
if kernel32.GetFileAttributesW(path) == 0xFFFFFFFF:
error_code = ctypes.get_last_error()
print(f"系统错误码: {error_code} (含义: {os.strerror(error_code)})")
```
---
阅读全文
相关推荐



















