ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

Python 命令行里的相对路径参数转换成绝对路径

2022-05-27 23:32:27  阅读:201  来源: 互联网

标签:Python tool value 绝对路径 参数 key 相对路径


最近开发的一个tool, 用户在使用的过程中发现, 如果用户输入的参数是一个相对路径,

tool 就会找不到文件的位置然后报错。

举个简单例子 tool cmd 是 python test.py -p config.file

py 脚本里的参数解析模块 argparse 获取到的实际参数就是 config.file, 这个显然不是符合预期的。

 

os.path.abspath 方法可以轻松帮助开发者获取到一个相对路径的绝对路径, 它的工作逻辑分成下面两种情况:

a) 输入参数本身就是一个绝对路径, 直接返回这个输入参数

b) 输入参数不是一个绝对路径, 返回的是 当前工作目录 + 输入参数

 

可以通过遍历每个参数 判断参数是一个path的前提下, 把它修改成绝对路径

    for key, value in args.__dict__.items():
        if isinstance(value, str) and key != "version" and value:
            args.__dict__[key] = os.path.abspath(value)

 

这里的判断规则是:

1) 实例是string类型

2)实例非空

3)过滤到 key 是 ”verison“” 的情况, 因为tool参数version不是一个路径信息, 所以不需要进行相对路径转换

你可以根据你的实际情况来制定准确的判断标准。

 

这样子 在命令行里运行 打包好的exe 或者 py文件都是可以正常解析相对路径

但如果在pycharm里运行可能还是不行,

因为 pycharm 设置的默认的工作目录不是你想要的,

这个时候我们可以修改 pycharm里的工作目录

修改方法如下

 

标签:Python,tool,value,绝对路径,参数,key,相对路径
来源: https://www.cnblogs.com/boyangchen/p/16319433.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有