如何简化argparse命令行输入?无需每次调用Python脚本
当然有办法!每次敲全命令确实挺繁琐的,我自己写小脚本的时候也经常想简化,给你几个实用的方案,挑适合你系统的来:
1. 用Shell别名(最快上手,跨多数终端)
不管是Linux/macOS的bash/zsh,还是Windows的WSL/PowerShell,都能给你的完整命令设个短别名。比如在bash里:
- 打开
~/.bashrc(zsh就改~/.zshrc),加一行:alias mycmd='python /绝对路径/到你的/scriptname.py' - 保存后执行
source ~/.bashrc让别名生效,之后直接敲mycmd --arg 1就行。
要是想更短,别名可以设成单字母,比如alias r='python /xxx/scriptname.py',那r --arg 1就搞定了。
2. Unix-like系统:给脚本加可执行权限+Shebang
这个方法能让脚本像系统命令一样直接调用:
- 在你的Python脚本第一行加上Shebang,指定解释器:
(如果你的Python3路径固定,也可以写#!/usr/bin/env python3#!/usr/bin/python3,但用env更灵活) - 给脚本加可执行权限:
chmod +x /你的脚本路径/scriptname.py - 要么把脚本所在目录加到系统
PATH环境变量里,要么把脚本移到/usr/local/bin这类已经在PATH里的目录。
之后直接敲scriptname.py --arg 1就能运行,甚至可以把脚本改名去掉.py后缀,变成scriptname --arg 1,更像原生命令。
3. Windows系统:用批处理脚本
Windows下可以写个简单的.bat文件来包装命令:
- 新建一个
run.bat,内容如下:
(@echo off python "C:\你的脚本绝对路径\scriptname.py" %*%*会把你输入的所有参数原封不动传给脚本) - 把这个
run.bat放到系统PATH包含的目录里(比如C:\Windows\System32,或者自己建个目录加到PATH)。
之后直接在cmd/PowerShell里敲run --arg 1就行,嫌run长的话,把bat文件名改成r.bat,就变成r --arg 1。
4. 打包成可执行命令(适合长期维护的工具)
如果你的脚本是个打算长期用的小工具,可以用setuptools把它打包成系统级的命令:
- 写个
setup.py文件(和脚本同目录):from setuptools import setup setup( name='mytool', version='0.1', entry_points={ 'console_scripts': [ 'mytool = scriptname:main', # main是你脚本里的入口函数 ], }, ) - 然后用
pip install -e .安装成可编辑模式(这样修改脚本后不用重新安装)。
之后直接敲mytool --arg 1就能运行,这个方法最适合需要分发或者长期维护的脚本。
小提醒
- 用别名或批处理时,要是脚本路径变了,记得同步更新配置;
- Shebang要对应你实际用的Python版本,比如用Python2的话就改成
python或者python2; - Windows下如果路径有空格,一定要用双引号把脚本路径括起来,避免出错。
内容的提问来源于stack exchange,提问作者ChickenRun
相关产品推荐
相关产品推荐

