Reputation: 110093
If I have an opened file, is there an os
call to get the complete path as a string?
f = open('/Users/Desktop/febROSTER2012.xls')
From f
, how would I get "/Users/Desktop/febROSTER2012.xls"
?
Upvotes: 171
Views: 168281
Reputation: 2772
You can get it like this also.
filepath = os.path.abspath(f.name)
Upvotes: 10
Reputation: 1701
I had the exact same issue. If you are using a relative path os.path.dirname(path) will only return the relative path. os.path.realpath does the trick:
>>> import os
>>> f = open('file.txt')
>>> os.path.realpath(f.name)
Upvotes: 159
Reputation: 3145
And if you just want to get the directory name and no need for the filename coming with it, then you can do that in the following conventional way using os
Python module.
>>> import os
>>> f = open('/Users/Desktop/febROSTER2012.xls')
>>> os.path.dirname(f.name)
>>> '/Users/Desktop/'
This way you can get hold of the directory structure.
Upvotes: 17
Reputation: 137310
The key here is the name
attribute of the f
object representing the opened file. You get it like that:
>>> f = open('/Users/Desktop/febROSTER2012.xls')
>>> f.name
'/Users/Desktop/febROSTER2012.xls'
Does it help?
Upvotes: 198