You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Streamlit应用未在正确目录搜索文件,如何无需绝对路径解决?

解决Streamlit应用文件路径查找问题

你的Streamlit应用脚本路径为/Users/myname/Documents/Master2/Python/Final_Project/streamlit_app.py,要读取的DataFrame文件路径是/Users/myname/Documents/Master2/Python/Final_Project/data/metabolic_syndrome.csv,使用相对路径df = pd.read_csv('data/metabolic_syndrome.csv')时出现错误:

FileNotFoundError: [Errno 2] No such file or directory: '/Users/myname/data/metabolic_syndrome.csv'

问题根源是Streamlit的工作目录并非脚本所在目录,而是你启动应用时终端的当前目录。以下是两种无需硬编码绝对路径的解决方法:

方法1:启动应用前切换到脚本所在目录

在终端中先进入脚本所在文件夹,再启动Streamlit:

cd /Users/myname/Documents/Master2/Python/Final_Project
streamlit run streamlit_app.py

此时相对路径data/metabolic_syndrome.csv会基于脚本所在目录解析,能正确找到目标文件。

方法2:在脚本中动态获取目录路径

利用Python内置模块获取脚本的绝对目录,再拼接数据文件路径,无论从哪个目录启动应用都能生效:

使用os模块实现

import os
import pandas as pd

# 获取当前脚本的绝对目录
script_dir = os.path.dirname(os.path.abspath(__file__))
# 拼接数据文件的完整路径
data_file_path = os.path.join(script_dir, 'data', 'metabolic_syndrome.csv')
df = pd.read_csv(data_file_path)

使用pathlib模块实现(更简洁)

from pathlib import Path
import pandas as pd

# 获取当前脚本所在的目录对象
script_dir = Path(__file__).parent.resolve()
# 拼接数据文件路径(支持路径运算符)
data_file_path = script_dir / 'data' / 'metabolic_syndrome.csv'
df = pd.read_csv(data_file_path)

内容的提问来源于stack exchange,提问作者GaëtanLF

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 09:50:24