在日常工作中,偶尔会看到简易web服务器(python -m http.server 9999) 或者CURL请求结果格式化( curl XXXX | python -m json.tool)等命令,看着还挺炫酷的,深度解析一下,并且列举一下常用的python -m命令。
1、定义
python -m是一个非常强大的命令行选项,它允许你将模块作为脚本运行,语法糖:
1
| python -m module_name [arguments]
|
主要查询的就是模块搜索路径(sys.path)下的模块。
2、常见命令
2.1 数据格式处理
1
| echo '{"name":"John","age":30}' | python -m json.tool
|
1
| python -m xml.dom.minidom file.xml
|
1
| python -m csvtool data.csv
|
2.2 网络服务
1 2
| python -m http.server 8000 # Python 3 python -m SimpleHTTPServer 8080 # Python 2
|
2.3 开发工具
1
| python -m black script.py
|
1 2 3
| python -m pylint script.py python -m flake8 script.py python -m mypy script.py # 类型检查
|
1 2
| python -m pytest python -m unittest discover
|
1
| python -m cProfile script.py
|
2.4 包管理相关
1 2 3
| python -m pip install package_name python -m pip list python -m pip freeze > requirements.txt
|
2.5 系统工具
1 2
| python -m zipfile -c archive.zip file1 file2 python -m zipfile -e archive.zip extract_dir
|
1 2
| python -m tarfile -c archive.tar files/ python -m tarfile -e archive.tar extract_dir/
|
2.6 文本处理
1 2
| python -m base64 -e "hello" python -m base64 -d "aGVsbG8="
|
1
| echo -n "hello" | python -m hashlib
|
1
| python -m re 'pattern' 'string'
|
2.7 交互式工具
1 2 3
| python -m code # 交互式控制台 python -m this # Python 之禅 python -m antigravity # 彩蛋
|
1
| python -m qrcode "https://www.python.org"
|
2.8 文档和帮助
1 2
| python -m pydoc json python -m pydoc -p 8888 # 启动本地文档服务器
|
不管未来如何,坚持学习提升自我 ~~~