我有一个Python脚本,它使用'Argparser'从命令行接受参数。这是我指定特定文件的位置的地方。然后,我调用安装在我的盒子上的另一个命令行工具,并将该文件的该位置传递给该工具。为了运行,该工具需要创建一个输出目录。Python子流程模块:“无法创建目录”
现在,我的问题是,它自己的工具没有问题,在我指定的位置创建输出目录。例如:#tool -o ~/output filelocation'
会导致该工具从文件位置读取文件,并在我的主文件夹中创建一个名为'output'的目录来存储结果。但是,当我使用调用子进程模块同样的事情在Python,它给了我一个错误:
subprocess.call(['tool', '-o ~/output', args.filelocation])
这导致:
Could not make directory ~/output
我运行所有这一切都以root权限。我不知道为什么这个'工具'不能通过子进程模块调用时创建一个目录。任何帮助,将不胜感激。
编辑:它给了我即使我使用绝对路径相同的错误。比如,我用:
subprocess.call(['tool', '-o /root/output', args.filelocation])
结果:
Could not make directory /root/bulk
它的工作原理=真'? – SethMMorton 2015-03-02 15:57:12
另外,你应该像这样构造参数:'['tool','-o','〜/ output',args.filelocation]'。所有以空格隔开的内容都应该是命令列表中的新元素。这可能是问题所在。 – SethMMorton 2015-03-02 15:58:29
拥有root权限并非(必然)与“root”相同。 – 2015-03-02 16:14:45