我无法将通过throug命令行传递的字符串转换为浮动函数。
我会更好地解释。 我有这个函数谁接受两个参数,第二个是浮点数
let result = getJsonLogin.getJson(urlGet: AppDelegate.ADDRESS+"/index.php", urlData: "mobile="+mobile+"")
print(result["message"])
然后我有另一个函数调用软件容器中的第一个
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)
它在函数处返回一个函数错误我尝试转换浮动说: 无法将字符串转换为float:shell
UPDATE 我发现问题是我传递的第一个字符串是一个带有一些空格的路径。就像是: some_string = C:\ blabla \ my directory \ file.txt“ 在'my'和'directory'之间有一个空格。我无法改变路径,你知道我该怎么办呢?
答案 0 :(得分:3)
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)
你错过了第一个和第二个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)
如所指出的那样,你也错过了一个"。这是应该的方式
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) + '"'
答案 1 :(得分:0)
将sys.argv[1]
更改为sys.argv[0]
,将sys.argv[1]
更改为sys.argv[2]
def function():
first_param = sys.argv[0]
second_param = float(sys.argv[1])
参数索引从0开始,而不是从1开始。
查看教程。tutorial