我有一个调用python脚本的CSH脚本。我试图将一个字符串传递给python脚本,但是它破坏了空间,在python中使用argparse是有困难的。我需要这个CSH脚本,因为在python执行之后,我需要使用一些遗留代码。在
CSH脚本:
只是python脚本调用,将所有的行参数传递给pythonsys.argv
#!/bin/csh
echo $argv[1-]
python soocc.py $argv[1-]
python脚本:
此脚本需要在argparse解析之前标识一个参数,例如:-opt "+arg1=1 +arg2=3 +arg3=0"
。因此,首先它确定sys.argv
中是否存在-opt
,将字符串写入变量中,然后从sys.argv
中删除{-opt
(因为argparse将+arg1视为参数,即使它在双引号内)。在
问题:
soocc.csh -opt '"+arg1=1 +arg2=3 +arg3=0"'
csh echo返回:
-opt "+arg1=1 +arg2=3 +arg3=0"
到目前为止还不错。问题是当参数被传递给python脚本时。第一个结果是:
['soocc.csh','-opt', '"+arg1=1', '+arg2=3', '+arg3=0"']
双引号内的字符串被sys.argv
分隔开。我期待的是:
['soocc.csh','-opt', "+arg1=1 +arg2=3 +arg3=0"]
有人能帮我找出问题所在吗?在
疯狂的黑客…但这应该管用。在
测试
相关问题 更多 >
编程相关推荐