如何在Python配置文件中配置前缀路径适配动态盘符的网络驱动器
解决方案
方案1:使用UNC路径替代盘符(推荐)
这是最稳定的方案,无需依赖动态分配的盘符,直接通过网络共享的绝对路径访问:
- 先查询当前网络驱动器对应的UNC路径:打开命令提示符执行
net use,输出中会显示盘符对应的共享路径,格式为\\服务器名称\共享文件夹名 - 修改ini配置文件中的路径为对应的UNC路径即可,示例如下:
[PATHS] source = \\your-server-name\your-share-name\data\Energy\Source archive = \\your-server-name\your-share-name\data\Energy\Archive [DB] host= localhost user = root passwd = ***** database= *****
注意:Windows系统中Python原生支持UNC路径访问,无需额外配置,只要当前登录用户有该共享目录的访问权限即可正常读写。
方案2:配置仅保留固定路径后缀,代码动态匹配盘符
如果因为权限或其他原因无法使用UNC路径,可以修改配置+增加路径检测逻辑实现动态适配:
- 先修改ini配置,移除盘符前缀,只保留固定的路径部分:
[PATHS] source_suffix = \data\Energy\Source archive_suffix = \data\Energy\Archive [DB] host= localhost user = root passwd = ***** database= *****
- 在Python代码中增加盘符检测逻辑,遍历所有可用盘符,找到存在目标路径的盘符后拼接为完整路径,示例代码如下:
import os import configparser def get_valid_drive(target_suffix): # 遍历所有可能的盘符(C到Z) for drive_letter in 'ABCDEFGHIJKLMNOPQRSTUVWXYZ': full_path = f"{drive_letter}:{target_suffix}" if os.path.exists(full_path): return full_path raise FileNotFoundError(f"未找到包含后缀{target_suffix}的有效驱动器") # 读取配置 conf = configparser.ConfigParser() conf.read('你的配置文件路径.ini') source_path = get_valid_drive(conf.get('PATHS', 'source_suffix')) archive_path = get_valid_drive(conf.get('PATHS', 'archive_suffix'))
方案3:使用批量脚本预先映射固定盘符
如果不想修改现有代码逻辑,可以在运行Python程序前先执行一段批处理脚本,自动检测Energy目录所在的盘符,临时映射为固定盘符(比如Z盘),再启动程序:
@echo off for %%d in (C D E F G H I J K L M N O P Q R S T U V W X Y Z) do ( if exist "%%d:\data\Energy\Source" ( subst Z: %%d:\ goto start_py ) ) :start_py python 你的程序.py
注意该方案仅在当前会话生效,关闭程序后映射会自动失效。
内容的提问来源于stack exchange,提问作者Mediterráneo
相关产品推荐
相关产品推荐

