python路径和argparse

本文探讨了上次实验中遇到的问题,主要集中在Python的路径操作和argparse模块的使用上。通过引用两篇CSDN博客文章,详细解释了如何处理文件路径以及argparse如何帮助处理命令行参数。
部署运行你感兴趣的模型镜像

上次实验的问题

sys.argv[0] # 程序本身路径

global args #Python中定义函数时,若想在函数内部对函数外的变量进行操作,就需要在函数内部声明其为global。

glob.glob(path,'*.png') #获取指定目录向下所有的png

os.environ[''] = '' #一个字符串可以映射到一个对象

os.walk(path) # 方法用于通过在目录树中游走输出在目录中的文件名

*args # 传入的参数被封装为tuple

**kwargs # 传入的dict

路径[1]

import os
file = 'user/local/test.py'

path = 'usr/local'

os.path.dirname(file) # 去掉文件名,返回目录。

os.path.basename(file) # 输出文件名

os.path.abspath(file) # 输出绝对路径

os.path.realpath(file) # 返回指定文件的标准路径,而非软链接所在的路径

os.path.exists(file) # 判断文件路径是否存在

os.path.listdir(path) # 获得指定文件夹下的所有文件

os.path.splitext(file) # 获取文件名的后缀,返回一个tuple;('user/local/test', '.py')

os.path.join(path, 'test.py') # 拼接文件路径和文件名

print( __file__) # 获取当前文件的路径

print(os.getcwd())#获得当前工作目录

print(os.path.abspath('.'))#获得当前工作目录

print(os.path.abspath('..'))#获得当前工作目录父目录

print(os.path.abspath(os.curdir))#获得当前工作目录

argparse[2]

# 位置参数
位置参数与sys.argv调用比较像,参数没有显式的–xxx或者-xxx标签,因此调用属性也与sys.argv相同。
# 标签
'--flag'
'-f'
# 可选参数
reuired - 参数默认是可选的,需要必须则设为 =True
type - 如果希望传进来的参数是指定的类型 =int
help - 设置这个选项的帮助信息 =”test help”
nargs - 指定这个参数后面的value有多少个 =+/?’
default -如果命令行没有出现这个选项,那么使用default指定的默认值
metavar -参数名字 ='slkjsdflk'
dest - 设置这个选项的值就是解析出来后放到哪个属性中 ='别的属性'
choices - 表示该参数能接受的值只能来自某几个值候选值中,除此以外会报错
action - argparse内置6种动作可以在解析到一个参数时进行触发:
		1.store 保存参数值,可能会先将参数值转换成另一个数据类型。若没有显式指定动作,则默认为该动作。

		2.store_const 保存一个被定义为参数规格一部分的值,而不是一个来自参数解析而来的值。这通常用于实现非布尔值的命令行标记。

		3.store_ture/store_false 保存相应的布尔值。这两个动作被用于实现布尔开关。

		4.append 将值保存到一个列表中。若参数重复出现,则保存多个值。

		5.append_const 将一个定义在参数规格中的值保存到一个列表中。

		6.version 打印关于程序的版本信息,然后退出
const

Reference

[1] https://blog.csdn.net/weixin_28567617/article/details/112888816
[2] https://blog.csdn.net/qq_36653505/article/details/83788460

您可能感兴趣的与本文相关的镜像

Python3.11

Python3.11

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

argparsePython 标准库中用于命令行参数解析的模块,能够自动生成帮助信息、处理参数类型、支持位置参数可选参数,适用于构建用户友好的命令行工具。它可以让人轻松编写用户友好的命令行接口,程序定义所需参数后,argparse 会从 `sys.argv` 解析出那些参数,还会自动生成帮助使用手册,并在用户传入无效参数时报出错误信息 [^1][^3]。 ### 使用方法 #### 创建参数解析器 使用 `ArgumentParser` 类创建参数解析器,定义命令行接口规则。初始化参数如下: ```python import argparse parser = argparse.ArgumentParser( description="程序描述", # 帮助信息首部说明 epilog="补充说明", # 帮助信息尾部说明 add_help=True # 是否自动添加 -h/--help 选项 ) ``` #### 添加命令行参数 使用 `parser.add_argument()` 方法添加命令行参数,例如添加两个命令行参数: ```python parser.add_argument('--input', help='输入文件的路径') parser.add_argument('--output', help='输出文件的路径') ``` #### 解析参数 使用 `parser.parse_args()` 方法解析命令行参数: ```python args = parser.parse_args() ``` #### 获取参数值 通过 `args` 对象获取命令行参数的值: ```python input_path = args.input output_path = args.output ``` ### 完整示例 ```python import argparse # 创建参数解析器 parser = argparse.ArgumentParser( description="这是一个示例程序", epilog="更多信息请参考文档", add_help=True ) # 添加命令行参数 parser.add_argument('--input', help='输入文件的路径') parser.add_argument('--output', help='输出文件的路径') # 解析参数 args = parser.parse_args() # 获取参数值 input_path = args.input output_path = args.output # 打印参数值 print(f"输入文件路径: {input_path}") print(f"输出文件路径: {output_path}") ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值