运行Python代码出现No such file or directory报错是什么原因
代码错误排查与修复
直接触发报错的核心问题
- 变量名拼写错误:你前面定义的路径存储变量是
data_path,但最后读取CSV时使用了未定义的path变量拼接路径,导致生成的路径完全无效,这是FileNotFoundError的直接诱因。 - 存储读取结果的
belton变量未提前初始化,修复路径问题后还会抛出NameError。
潜在的其他错误(也会导致运行失败)
- 跨平台兼容性问题:你通过
os.system调用的mkdir、mv都是类Unix系统的shell命令,Windows系统下没有对应命令,会直接导致目录创建、文件移动操作失败,自然找不到目标文件。 - 手动拼接路径不规范:不同系统的路径分隔符不一致(Windows为
\、类Unix为/),手动拼接/容易在Windows下生成无效路径,应该使用os.path.join自动适配系统规则。 - 空异常捕获会隐藏问题:你用
try-except捕获所有异常后直接pass,如果目录因权限不足等原因创建失败,你无法感知到错误,后续操作都会连锁失败。
修复后可正常运行的代码
import os import pandas as pd import shutil # 收集当前工作目录下所有csv文件 csv_files = [file for file in os.listdir(os.getcwd()) if file.endswith('.csv')] dataset_dir = 'datasets3' # 安全创建目录,目录已存在时自动跳过不会报错 os.makedirs(dataset_dir, exist_ok=True) # 跨平台移动文件,不依赖系统shell命令 for csv in csv_files: shutil.move(csv, os.path.join(dataset_dir, csv)) # 提前初始化存储数据的字典 belton = {} # 读取目标目录下的csv文件 for file in csv_files: # 自动适配系统的路径拼接 full_file_path = os.path.join(os.getcwd(), dataset_dir, file) belton[file] = pd.read_csv(full_file_path)
内容的提问来源于stack exchange,提问作者Bubblewater
相关产品推荐
相关产品推荐

