python文件不完整,如何等到完成后再处理回父进程

python文件不完整,如何等到完成后再处理回父进程,python,subprocess,popen,Python,Subprocess,Popen,我希望能够启动一个子进程,将文件写入服务器,然后等待它完全完成,然后再处理回父进程。 我收到post请求中的图像文件。我解析它并用下面的代码将其写入服务器。。。这很好 path="/var/bla/bla/bla/" original_fname = file1['filename'] output_file = open(os.path.join(path,original_fname), 'w') output_file.write(file1['body']) 问题是,在创建该文件以获取

我希望能够启动一个子进程,将文件写入服务器,然后等待它完全完成,然后再处理回父进程。 我收到post请求中的图像文件。我解析它并用下面的代码将其写入服务器。。。这很好

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”对象没有属性“\u child\u created”


如何修复此问题?

写入文件后,您没有关闭该文件。您可以这样做:

output_file = open(os.path.join(path,original_fname), 'w')
output_file.write(file1['body'])
output_file.close()
但是我建议使用
with
关键字,即使在块中发生错误,它也会关闭文件描述符:

with open(os.path.join(path,original_fname), 'w') as output_file:
    output_file.write(file1['body'])

完成写入后是否关闭该文件?试着在你写完文件后关闭它。嗨,凯文,不。您将如何执行此操作?在本例中,
output\u file.close()
.Ha。对仅此而已。把它放在一个答案里,。非常感谢。像往常一样,我试图把事情复杂化:)它也应该是
process=subprocess.Popen(stdout=outputfile)
process.communicate()