You don't close your files, they might get closed automatically when they get garbage collected but I don't know.
with is pretty handy if its supported. On 15 July 2016 at 23:16, Scott Wilson <[email protected]> wrote: > Hey everyone, > > I'm trying to write some code that will take the metadata from one exr, and > add/replace the metadata in the second exr in Python (Tested in oiio 1.5.18 > and 1.6.14) . The issue I'm getting is when I run the code the first time > with a unique attribute, it fails to write the attribute. However, if I run > the same code a second time, the attribute is properly written. I have a > feeling the image data is not being properly sent to disk after write (but > instead, it is sent to disk after Python closes), and reading back returns > the old metadata. > > Here's the example code I used: > > import OpenImageIO as oiio > > patha = "/path/to/image_a.exr" > pathb = "/path/to/image_b.exr" > attr = "attr1" > > > def a(): > # Set an attribute on the first image. > bufa = oiio.ImageBuf(patha) > spec = bufa.specmod() > spec.attribute(attr, attr) > bufa.write(patha) > > bufa = oiio.ImageBuf(patha) > spec = bufa.spec() > > > def b(): > # Set the attribute on the second image. > bufa = oiio.ImageBuf(patha) > speca = bufa.spec() > result = speca.get_string_attribute(attr) > > # Keeps on failing here, since the attribute is not set yet. > assert result, "No attribute." > > bufb = oiio.ImageBuf(pathb) > specb = bufb.specmod() > specb.attribute(attr, result) > bufb.write(pathb) > > > def c(): > # Print all of the attributes on the second file. > bufb = oiio.ImageBuf(pathb) > specb = bufb.spec() > > for attr in specb.extra_attribs: > print attr.name, attr.value > > > if __name__ == '__main__': > a() > b() > c() > > > Could it be that I'm doing something wrong, or is there something that I can > do to force the read after the write to read the new metadata? Thanks! > > - Scott Wilson > > _______________________________________________ > Oiio-dev mailing list > [email protected] > http://lists.openimageio.org/listinfo.cgi/oiio-dev-openimageio.org > _______________________________________________ Oiio-dev mailing list [email protected] http://lists.openimageio.org/listinfo.cgi/oiio-dev-openimageio.org
