Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
打开另一个文件中带有参数的python文件_Python_Python 3.x - Fatal编程技术网

打开另一个文件中带有参数的python文件

打开另一个文件中带有参数的python文件,python,python-3.x,Python,Python 3.x,我试图使用参数从另一个文件打开CapGenVoice.py,但每次都会出现错误 UnboundLocalError:赋值前引用了局部变量“image” 这是我的密码 import subprocess loc = r"C:\Users\Ajax\New\a.jpg" subprocess.call("python CapGenVoice.py -i loc", shell=True) 这是CapGenVoice.py ap = argparse.Argu

我试图使用参数从另一个文件打开CapGenVoice.py,但每次都会出现错误

UnboundLocalError:赋值前引用了局部变量“image”

这是我的密码

import subprocess
loc = r"C:\Users\Ajax\New\a.jpg"
subprocess.call("python CapGenVoice.py -i loc", shell=True)
这是
CapGenVoice.py

ap = argparse.ArgumentParser()
ap.add_argument('-i', '--image', required=True, help="Image Path")
args = vars(ap.parse_args())
img_path = args['image']

您似乎犯了一个小错误,将
loc
作为字符串而不是变量包含在子流程命令中。因此,脚本正在查找名为
loc
的文件,而不是
C:\Users\Ajax\New\a.jpg

以下是正确的代码:

导入CapGenVoice
导入子流程
loc=r“C:\Users\Ajax\New\a.jpg”
调用(f“python CapGenVoice.py-i'{loc}',shell=True)

您似乎犯了一个小错误,将
loc
作为字符串而不是变量包含在子流程命令中。因此,脚本正在查找名为
loc
的文件,而不是
C:\Users\Ajax\New\a.jpg

以下是正确的代码:

导入CapGenVoice
导入子流程
loc=r“C:\Users\Ajax\New\a.jpg”
调用(f“python CapGenVoice.py-i'{loc}',shell=True)


附件名称中有一个空格。把它当作一根绳子。而且这条路也没有完全逃逸。您可以尝试更改这些文件并运行吗?我尝试了更改文件名,但显示了相同的错误您没有提供导入和使用功能的任何特定原因?@tobias_k是的,实际上CapGenVoice必须位于不同的文件中更新后您可以发布代码吗?附件名称中有一个空格。把它当作一根绳子。而且这条路也没有完全逃逸。您可以尝试更改这些文件并运行吗?我尝试更改文件名,但它显示相同的错误任何特定原因您不提供导入和使用的功能?@tobias_k是的,实际上CapGenVoice必须位于不同的文件中更新后您可以发布代码吗?不,相同的错误是coming@Ajax奇怪的是你我们得到了同样的错误。我通过在
loc
变量周围加上单引号来更新代码。您可以尝试运行更新的代码并告诉我您遇到了什么错误吗?
fileUpload.py:error:需要以下参数:-i/--image
我尝试了单引号和花括号
subprocess.call(“python CapGenVoice.py-i%s”%loc,shell=True)
试试这一个,你会得到同样的错误吗?@Sinakzlca现在它显示了
缩进错误:应该是缩进的块
没有相同的错误coming@Ajax奇怪的是,你也会犯同样的错误。我通过在
loc
变量周围加上单引号来更新代码。您可以尝试运行更新的代码并告诉我您遇到了什么错误吗?
fileUpload.py:error:需要以下参数:-i/--image
我尝试了单引号和花括号
subprocess.call(“python CapGenVoice.py-i%s”%loc,shell=True)
试试这一个,你会得到同样的错误吗?@Sinakzlca现在它显示了
缩进错误:应该是缩进块