打开另一个文件中带有参数的python文件
我试图使用参数从另一个文件打开CapGenVoice.py,但每次都会出现错误 UnboundLocalError:赋值前引用了局部变量“image” 这是我的密码打开另一个文件中带有参数的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
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现在它显示了缩进错误:应该是缩进块