我的代码中有这个功能:
def send_info(self, bfile, output_file_name, tag):
self.command = r"sshpass -p {3} scp -P 5622 {0} {1}@{2}:/home/blender/Documents/blade_queue/".format(str(current_render.blend), self.uname, self.host, self.password)
print self.command
self.response = subprocess.check_output(self.command)
打印出来:
sshpass -p PASSWORD scp -P PORT /mnt/c/Users/Joseph\ Farah/Documents/python/cross_computer_rendering_gui/src/test.blend blender@IP /home/blender/Documents/blade_queue/
当我将此命令复制并粘贴到我的shell中时,它的工作非常漂亮。但是,尝试在Python中运行它会导致:
OSError:[Errno 2]没有这样的文件或目录
在那条线上。
任何帮助将不胜感激!提前谢谢。
答案 0 :(得分:1)
想出来。我需要在命令中添加shell=True
。有谁知道这是否会导致任何安全漏洞?
编辑命令:
self.response = subprocess.check_output(self.command, shell=True)