如何编写跨电脑通用的文件读取代码?解决不同路径下的同一数据读取问题
解决跨电脑文件路径通用的几种方案
以下是几个无需移动数据、无需统一仓库位置的实用方案:
方案1:通过主机名判断路径
利用两台电脑的主机名差异做分支判断,代码自动适配对应路径:
import os import pandas as pd # 获取当前电脑的主机名(Windows用下面的注释行替换) hostname = os.uname()[1] # Linux/macOS适用 # hostname = os.environ['COMPUTERNAME'] # Windows适用 if hostname == "你的PC1主机名": file_path = "D:/data/text.txt" elif hostname == "你的PC2主机名": file_path = "C:/Users/Uporabnik/Desktop/desktop/IJS/CESTEL/data/text.txt" else: file_path = "" # 可设置默认路径或抛出提示 df = pd.read_csv(file_path)
提示:Windows可通过cmd输入hostname查看主机名,Linux/macOS直接在终端输hostname即可
方案2:读取本地配置文件
在每台电脑上单独存一个配置文件,代码读取该文件获取路径,无需修改代码本身:
- PC1上创建
config.json,内容:
{"file_path": "D:/data/text.txt"}
- PC2上创建同名
config.json,内容改为:
{"file_path": "C:/Users/Uporabnik/Desktop/desktop/IJS/CESTEL/data/text.txt"}
- 代码读取配置:
import json import pandas as pd with open("config.json", "r") as f: config = json.load(f) df = pd.read_csv(config["file_path"])
把config.json放在代码同目录下,两台电脑各自维护自己的配置文件即可
方案3:设置系统环境变量
在两台电脑上分别设置同一个环境变量,代码通过环境变量获取路径:
- Windows:右键「此电脑」→属性→高级系统设置→环境变量,新建系统变量
DATA_FILE_PATH,值设为对应电脑的文件路径 - Linux/macOS:在
~/.bashrc或~/.zshrc添加export DATA_FILE_PATH="对应路径",执行source ~/.bashrc生效 - 代码读取环境变量:
import os import pandas as pd file_path = os.getenv("DATA_FILE_PATH") if not file_path: raise ValueError("请先设置DATA_FILE_PATH环境变量") df = pd.read_csv(file_path)
内容的提问来源于stack exchange,提问作者leskovecg
相关产品推荐
相关产品推荐

