如何在Linux终端上运行python代码?[duplicate]

pxy2qtax  于 2023-02-07  发布在  Linux
关注(0)|答案(4)|浏览(145)
    • 此问题在此处已有答案**:

How to read/process command line arguments?(22个答案)
三年前关闭了。
我有一个名为myadd.py的文件,其中只包含以下函数:

def myadd(a,b):
    return a+b

我如何在Linux终端上运行它?我正在寻找这样简单的东西:

python myadd 2,3

我的最终目标是通过创建一个.sh文件将多个作业发送到服务器,该文件包含:

bsub -J job1 python myadd 2,3
bsub -J job1 python myadd 4,5
bsub -J job1 python myadd 6,3
.
.
.
.

如果我需要做任何更改才能做类似上面这行的事情,请告诉我。

klh5stk1

klh5stk11#

您可以使用argparse
代码:

import argparse

ap = argparse.ArgumentParser()
ap.add_argument("-n", "--numbers", required=True, default=None, type=str,
    help="Input your numbers to add separated by comma")

args = vars(ap.parse_args())

numbers = args["numbers"].split(",") # Parse the arguments
numbers = [int(i) for i in numbers] # convert from str to int list

def addition(a: int, b: int):
    """Add function"""
    return a+b

print("Result: {}".format(addition(numbers[0], numbers[1])))

用法:

(pyenv)  ✘ rjosyula  ~  python x.py --help
usage: x.py [-h] -n NUMBERS

optional arguments:
  -h, --help            show this help message and exit
  -n NUMBERS, --numbers NUMBERS
                        Input your numbers to add separated by comma

结果

python x.py --numbers 2,3
Result: 5
nwo49xxi

nwo49xxi2#

你需要使用sys.argv来接受命令行参数。我建议在两个数字之间使用空格而不是逗号。更多细节,请参见sys.argv[1] meaning in script和官方文档。如果你需要更复杂的命令行参数,我建议你查看argparse库。

0wi1tuuw

0wi1tuuw3#

还有fire模块。
这只需要:

import fire

def myadd(a, b):
    return a+b

if __name__ == '__main__':
    fire.Fire(myadd)

导入保护在中被编辑了。这里不需要它,因为脚本不太可能被用作模块。因此我故意忽略了它。
生成命令的步骤

python script.py 1 2

打印3

4c8rllxm

4c8rllxm4#

您需要使用命令行参数。
例如,在下面的代码中:

import sys

print ('# Args:', len(sys.argv))
print ('Argument List:', str(sys.argv))

如果你在候机厅打电话...

python3 test_args.py ar1 ar2 ar3 ar4 ar5

给出结果:

# Args:: 6
Argument List: ['test_args.py', 'ar1', 'ar2', 'ar3', 'ar4', 'ar5']

相关问题