如何编写python代码来通过bash脚本接受用户的输入



我想为不同的城市和每个城市计算5次一些度量。我需要通过bash脚本提供数据。

#!/bin/bash 
cities=('paris''helsinki' 'rome') 
for city in "${cities[@]}" do
for (( i = 1; i <= 5; i++ ))
do
srun python3 random_graph.py  "$city" > "$city"/"city"_"$i".json
done

完成

我这样写我的python代码:

def get_network_measure(city):
some code

if __name__ == '__main__':
city = input()
result = get_network_measure(city)

但我需要同时给出城市名称,而不是在第二步中通过input((函数给出。当我在bash 中运行时,我需要这样的东西

python mycode.py paris

您需要读取传递给解释器的参数。这些在sys.argv中可用。

您还需要写入标准输出,sys.stdout。默认情况下,您可以使用print:执行此操作

import sys
def main(argv):
city = argv[1]
print(get_network_measure(city))
def get_network_measure(city):
return 110

if __name__ == '__main__':
main(sys.argv)

您也可以使用sys.stdin通过管道输入。

Python模块argparse为解析命令行参数提供了一个方便的功能:

import argparse
def main():
parser = argparse.ArgumentParser()
parser.add_argument('-c', '--city', 
help = 'name of the city', 
required = True
)

args = parser.parse_args()

result = get_network_measure(args.city)

在bash中,您必须执行以下操作:

$ python mycode.py -c paris

相关内容

  • 没有找到相关文章

最新更新