osdir.com


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

absolute path to a file


On Thu, 15 Aug 2019 22:00:17 +0200
Paul St George <email at paulstgeorge.com> wrote:

> Can someone please tell me how to get the absolute path to a file? I 
> have tried os.path.abspath. In the code below I have a problem in the 
> final line (15).
> 
> #
> |import bpy||
> ||import os||
> ||
> ||texture_list = []||
> ||
> ||with open(os.path.splitext(bpy.data.filepath)[0] + ".txt", "w") as 
> outstream:||
> ||
> ||
> ||?for obj in bpy.context.scene.objects:||
> ||??? for s in obj.material_slots:||
> ||??????? if s.material and s.material.use_nodes:||
> ||??????????? for n in s.material.node_tree.nodes:||
> ||??????????????? if n.type == 'TEX_IMAGE':||
> ||??????????????????? texture_list += [n.image]||
> ||print(obj.name,'uses',n.image.name,'saved at',n.image.filepath,
> 'which is at', os.path.abspath(n.image.filepath), file=outstream)||
> |#
> 
> This gives me:
> ---Plane uses image01.tif saved at //image01.tif which is
> at //image01.tif ---Plane uses image02.tif saved
> at //../images/image02.tif which is at //images/image02.tif
> 
> But I want an absolute path such as:
> ---Plane uses image01.tif saved
> at /Users/Lion/Desktop/test8/image01.tif ---Plane uses image02.tif
> saved at /Users/Lion/Desktop/images/image02.tif
> 
> If it is relevant, my files are on a Mac. Hence the escaped forward
> slash.
> 

I did this:


from pathlib import Path

abs_myfile = Path('./myfile').resolve()


which worked fine for me.

-- 
Manfred