多PC同步Google Drive时Python读取文件的路径兼容问题问询
可行解决方案
以下方案均保留完整绝对路径读取文件的逻辑,无需每次切换设备手动修改代码:
- 方案1:动态检测有效根路径自动拼接
预先定义两台设备的两个可能根路径,代码自动检测当前设备可用的根路径,再拼接后半段固定的子路径生成完整绝对路径。
示例代码:
from pathlib import Path import pandas as pd # 预定义两个可能的Drive根路径 possible_roots = [ Path(r'C:\Users\turbo\Google Drive'), Path(r'C:\Users\turbo\My Drive') ] # 自动匹配当前设备存在的根路径 drive_root = next(root for root in possible_roots if root.exists()) # 拼接得到完整绝对路径 full_file_path = drive_root / 'Studium' / 'Master_thesis' / 'Python' / 'Databases' / 'passport_uzb.csv' # 读取文件 passport = pd.read_csv(full_file_path)
如果出现两个路径同时存在的特殊场景,可自行调整判断逻辑指定优先级即可。
- 方案2:使用系统环境变量统一调用
在两台设备上分别新建同名系统环境变量,变量名设为GOOGLE_DRIVE_ROOT,第一台变量值填写C:\Users\turbo\Google Drive,第二台填写C:\Users\turbo\My Drive,代码直接读取环境变量拼接路径即可。
示例代码:
import os from pathlib import Path import pandas as pd drive_root = Path(os.getenv('GOOGLE_DRIVE_ROOT')) full_file_path = drive_root / 'Studium' / 'Master_thesis' / 'Python' / 'Databases' / 'passport_uzb.csv' passport = pd.read_csv(full_file_path)
- 方案3:本地独立配置文件存储前缀
在同步目录外创建配置文件,或设置Google Drive不同步配置文件,两台设备各自保留一份配置文件存储根路径前缀,代码读取配置后拼接路径即可。
比如新建local_config.py,仅填写根路径配置:
# 第一台设备配置 DRIVE_ROOT = r'C:\Users\turbo\Google Drive' # 第二台设备改为对应路径即可:DRIVE_ROOT = r'C:\Users\turbo\My Drive'
主业务代码引用配置拼接路径:
from local_config import DRIVE_ROOT from pathlib import Path import pandas as pd full_file_path = Path(DRIVE_ROOT) / 'Studium' / 'Master_thesis' / 'Python' / 'Databases' / 'passport_uzb.csv' passport = pd.read_csv(full_file_path)
内容的提问来源于stack exchange,提问作者Kuehlschrank
相关产品推荐
相关产品推荐

