本文是一篇根据日常开发整理的 Python 实用语法集合,简单记录并分享,方便自己回顾查阅。
Python 命令行传参
利用命令行参数列表获取参数
Python 可以通过 sys 模块获取命令行参数列表
import sys print(len(sys.argv)) print(sys.argv)
通过获取 argv 的参数列表,获取传参数组,然后根据入参顺序固定传参对应的操作,执行相关函数。当我们在 terminal 中输入 python test.py
时,就会输出命令行参数列表。
➜ PythonTest python test.py 1 ['test.py']
从控制台输出可知, sys.argv
会将当前程序脚本名称也视为入参,而利用参数列表获取传参有两个弊端:参数传参表意不明,参数顺序不可改变。因此,接下来介绍另一种命令行参数获取方式。
利用 argparse 模块获取参数
#!/usr/bin/python # -*- coding: UTF-8 -*- import sys import argparse global args def read_args(): global args parse = argparse.ArgumentParser() parse.add_argument('-t', '--type', help='The Type of Process.', type=str, required=True) args = parse.parse_args() if __name__ == '__main__': read_args() type = args.type print('Current Type ---> {}'.format(type)) print(len(sys.argv)) print(sys.argv)
与利用参数列表获取传参不同对于, argparse
模块需要创建参数解析实例,并且入参需要设置参数名称的简写、全写、类型,是否必须等属性。如果我们将入参设置为必须传参,那么当我们再次在 terminal 中输入 python test.py
时,就会报错,提示 argument -t/--type is required
。
➜ PythonTest python test.py usage: test.py [-h] -t TYPE test.py: error: argument -t/--type is required
当我们输入 python test.py -t aaa
命令时,就可以获得正确的输出结果。
文件扫描及读写
遍历目录
Python 用于扫描文件目录是很常见的应用场景,对于提高工作效率非常有助。比如,我们打印某个目录下的所有文件。
def traverse_dir(root='/'): for parent, _, files in os.walk(root): print('{} --->'.format(parent)) for _file in files: print(_file)
学习更多Python