【发布时间】:2015-12-03 17:33:02
【问题描述】:
我希望能够启动一个将文件写入服务器的子进程,然后等到它完全完成后再处理回父进程。 我从发布请求中收到一个图像文件。我解析它并使用以下代码将其写入服务器......这很好。
path="/var/bla/bla/bla/"
original_fname = file1['filename']
output_file = open(os.path.join(path,original_fname), 'w')
output_file.write(file1['body'])
问题是我必须在创建后使用 imagemagick 命令行工具访问该文件以获取某些数据。但是使用上面的代码还为时过早,并且该过程还没有完成创建文件。 我想在上面的代码之后这样做......
subprocess.Popen(stdout=output_file)
Popen.communicate()
但出现以下错误....
'Popen' 对象没有属性 '_child_created'
我该如何解决这个问题?
【问题讨论】:
-
您是否在完成写入后关闭文件?完成写入后尝试关闭文件。
-
嗨,凯文,不。你会怎么做?
-
在这种情况下,
output_file.close(). -
哈哈。是的。就是这样。把它放在答案中,。谢谢你。像往常一样,我试图使事情复杂化:)
-
也应该是
process = subprocess.Popen(stdout=outputfile)和process.communicate()
标签: python subprocess popen