python可执行程序入参_带参数的python可执行文件

众所周知,python是一个脚本语言,脚本语言具有简单、易学、易用的特性。执行代码前,不需要编译(compile),通过即时解释(interpret)即可运行。然而,说了一堆有的没的,作为小白的我最开始也是只会用IDE来跑程序,怎么样才能在命令行下直接运行一个python脚本文件呢?

首先,创建一个python脚本文件foo.py:

print('Hello world!')

最简单的方式,我们可以直接使用python解释器来执行脚本文件,如:

[email protected]:~$python3 foo.py

Hello world!

不过,每次都要输入python3还是有点麻烦,尤其是输成python的时候烦躁的情绪会非常强烈,所以我们要在foo.py文件的第一行(注意连空行都不可以有)声明解释器的位置,这样脚本文件就会自己去找到解释器,不用我们每次手动输入了。更新后的foo.py如下:

#!/usr/bin/python3

print('Hello world!')

当然你也可以使用其它路径下的解释器,比如:

#!/home/letian/anaconda3/envs/python3/bin/python3

print('Hello world!')

这样,理论上这个脚本文件就可以通过./foo.py来执行了,但一定要保证这个文件是可执行的,或者说你当前的用户有权限(access permission)执行,如果没有权限的话,要用chmod这个工具来赋予文件可以被当前用户执行的权限:

[email protected]:~$./foo.py

bash: ./foo.py: Permission denied

[email protected]:~$ll | grepfoo.py

-rw-rw-r-- 1 letian letian 72 May 4 15:02 foo.py

[email protected]:~$chmod +x foo.py

[email protected]:~$ll | grepfoo.py

-rwxrwxr-x 1 letian letian 72 May 4 15:02 foo.py*

[email protected]:~$./foo.py

Hello world!

完美!到此为止我们已经达到了最初的目的了,不过为什么人家chmod能通过各种不同的参数来实现不同的功能呢,我们能否也如此狂拽酷炫屌呢?这不是明摆着可以么,不然我写这个标题干嘛。。。

python里面有个库,叫做argparse,它的官方文档在这儿,顾名思义,它实现parse arguments的功能,让我等菜鸡省了好多的苦力,下面就贴一段最简单也最常用的示例代码,让大家稍微体会一下,更多的特性还是去翻文档吧咩哈哈哈:

#!/usr/bin/python3

import sys

import argparse

parser = argparse.ArgumentParser()

parser.add_argument('--times', default=1, type=int, help='repeat hello world n times')

args = parser.parse_args(sys.argv[1:])

for i in range(args.times):

print('Hello world!')

然后我们跑一下试试:

[email protected]:~$./foo.py --help

usage: foo.py [-h] [--times TIMES]

optional arguments:

-h, --help show this helpmessage and exit

--times TIMES repeat hello world n times[email protected]:~$./foo.py

Hello world!

[email protected]:~$./foo.py --times 3

Hello world!

Hello world!

Hello world!

完美!

p.s. 本来想把执行带main函数的文件一起说的,然而现在才想起来。。。不过我自己也没有把python的项目结构完全搞懂,这次就不说了,万一说错了误导了各位就真的不合适了。

最后,祝大家码运昌隆!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值