我希望能够设置一个将文件写入服务器的子进程,然后等到它完全完成后再处理回父进程。 我收到了一个帖子请求的图像文件。我解析它,然后使用以下代码将其写入服务器......这很好。
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'
我该如何解决这个问题?
答案 0 :(得分:3)
写完后你没有关闭文件。你可以这样做:
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'])