【发布时间】:2018-08-11 02:21:08
【问题描述】:
我无法将通过命令行传递的字符串转换为要浮动的函数。
我会解释得更好。 我有这个函数,它接受两个参数,第二个是浮点数
def function():
first_param = sys.argv[1]
second_param = float(sys.argv[2])
然后我有另一个函数,它调用软件容器中的第一个函数
def callFunction(first_arg, second_arg):
cmd = 'docker run --rm -v pathFunction:/home/fenics/shared -w /home/fenics/shared quay.io/fenicsproject/stable "python2 function.py ' + first_arg + str(second_arg)
process = subprocess.Popen(cmd, shell=True)
当我打电话时:
callFunction("some_string",0.02)
它在我尝试将转换为浮动的那一行返回一个函数错误: 无法将字符串转换为浮点数:shell
更新 我发现问题在于我传递的第一个字符串是一个包含一些空格的路径。就像是: some_string = C:\blabla\我的目录\file.txt" 在“我的”和“目录”之间有一个空格。我无法更改路径,您知道我该如何解决吗?
【问题讨论】:
-
最后一行不应该是
process = subprocess.Popen(cmd1, shell=True)吗? -
在
cmd的末尾,+ first_arg + str(second_arg)的参数之间应该有一个空格,对吧?我想你想要some_string 0.02而不是some_string0.02。
标签: python command-line subprocess args