gpt4 book ai didi

python - 如何从 bash shell 提示符运行带有句子作为命令行参数的 python 程序

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:34:24 24 4
gpt4 key购买 nike

我想运行一个 python 程序,它将一个句子作为 bash shell 提示符下的命令行参数。

我试过以下两种方式,一种有效,另一种无效,为什么会这样?两种方式都应该有效。

为什么第一种方式报错?

提前致谢

test.py 只打印参数。公司名称


sumanth@sumanth:~$ cat test.py
import os
import argparse

parser = argparse.ArgumentParser(description='')

parser.add_argument('-co',action='store',dest='co',default='aa')

results = parser.parse_args()

co = results.co

print co

sumanth@sumanth:~$
sumanth@sumanth:~$
sumanth@sumanth:~$
sumanth@sumanth:~$ cmd='python test.py -co "\"ABC Networks"\"'
sumanth@sumanth:~$
sumanth@sumanth:~$ $cmd
usage: test.py [-h] [-co CO]
test.py: error: unrecognized arguments: Networks"\"
sumanth@sumanth:~$
sumanth@sumanth:~$
sumanth@sumanth:~$
sumanth@sumanth:~$
sumanth@sumanth:~$ python test.py -co "\"ABC Networks"\"
"ABC Networks"
sumanth@sumanth:~$
sumanth@sumanth:~$

最佳答案

为什么要尝试将命令保存在 $cmd 中?如果您改用脚本,则可以使用 "$@" 传递参数:

运行测试.sh:

#!/bin/bash

python "$@"

结果:

$ ./runTest.sh test.py "ABC Networks"
Number of arguments: 3 arguments.
Argument List: ['test.py', '-co', 'ABC Networks']

否则你可以尝试使用 eval:

$ cmd='python test.py -co "ABC Networks"'
$ eval $cmd
Number of arguments: 3 arguments.
Argument List: ['test.py', '-co', 'ABC Networks']

关于python - 如何从 bash shell 提示符运行带有句子作为命令行参数的 python 程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22037863/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com