Windows下VS Code读取CSV文件遇Errno 13权限拒绝问题求助
解决CSV文件读取权限拒绝问题
问题重现
尝试用以下代码读取CSV文件:
import pandas as pd # Define the path to the CSV file file_path = "./InputFileValidation/Dummy2023raw.csv" # Read the CSV file try: df = pd.read_csv(file_path) # Extract and print the headers headers = df.columns.tolist() print("Headers in the CSV file:") print(headers) except Exception as e: print(f"An error occurred: {e}")
文件夹结构:parent / NetWork_Optimization / InputFileValidation / Dummy2023raw.csv
Python文件路径:parent / NetWork_Optimization / test.py
已以管理员身份运行VS Code,文件已关闭,但运行时报错:
An error occurred: [Errno 13] Permission denied: './InputFileValidation/Dummy2023raw.csv'
可能的解决方案
检查当前工作目录是否正确
相对路径./InputFileValidation/...是基于Python运行时的工作目录,而非脚本所在目录。可以在代码开头加入以下内容打印当前工作目录:import os print("Current working directory:", os.getcwd())如果输出的不是
parent/NetWork_Optimization,就会找不到文件(部分系统会误报权限错误)。此时可以在VS Code终端中切换到脚本所在目录再运行,或者修改路径。使用绝对路径(推荐)
利用脚本文件的路径来构建绝对路径,避免工作目录的影响:import os import pandas as pd # 获取脚本所在目录的绝对路径 script_directory = os.path.dirname(os.path.abspath(__file__)) # 拼接CSV文件路径 file_path = os.path.join(script_directory, "InputFileValidation", "Dummy2023raw.csv") try: df = pd.read_csv(file_path) headers = df.columns.tolist() print("Headers in the CSV file:") print(headers) except Exception as e: print(f"An error occurred: {e}")验证文件实际权限与占用情况
- 右键CSV文件,查看属性中的安全设置,确认当前用户拥有读取权限;
- 打开任务管理器的“详细信息”标签,检查是否有其他进程在占用该文件(即使手动关闭了文件,后台进程可能仍在占用)。
检查路径拼写与大小写
确认文件夹和文件名的拼写、大小写与系统中的实际名称完全一致(比如NetWork_Optimization是否和系统中的文件夹名大小写匹配,部分系统对路径大小写敏感)。
内容的提问来源于stack exchange,提问作者rutgerv
相关产品推荐
相关产品推荐

