Trouble getting to windows My Documents directory

Rustom Mody rustompmody at gmail.com
Fri Jul 10 19:48:28 CEST 2015


On Friday, July 10, 2015 at 8:56:48 PM UTC+5:30, Mark Storkamp wrote:
>  MRAB  wrote:
> 
> > On 2015-07-10 15:27, Mark Storkamp via Python-list wrote:
> > > I'm just learning Python, and I've run into trouble trying to change
> > > directory to the windows My Documents directory. There's likely a better
> > > way to do this, but this is what I've tried so far:
> > >
> > > ---------------------------------------------
> > > from tkinter import Tk
> > > from tkinter.filedialog import askopenfilename
> > >
> > > import os
> > >
> > > Tk().withdraw()
> > >
> > > sourcedir = os.environ['HOME']+"/Documents/"
> > > os.chdir(sourcedir)
> > > src = askopenfilename()
> > > if src == '' :
> > >      sys.exit()
> > > fin = open(src, mode='r')
> > > ## do stuff
> > > fin.close()
> > > -----------------------------------------------
> > >
> > > When this is run from IDLE, it works fine. But when I double click on
> > > the saved file to run it, it quits without ever showing the open file
> > > dialog box, and doesn't show any error message.
> > >
> > > The problem is with the os.environ['HOME'] call. If I comment it out
> > > (and fix up the surrounding code with an absolute path) then it runs.
> > > But then it won't work properly for other users.
> > >
> > > Interestingly enough, when I moved this to a Mac so I could post to
> > > Usenet, I discovered it works fine on the Mac. Only Windows seems to be
> > > the problem. Windows 7.
> > >
> > > Any thoughts or suggestions?
> > >
> > Try os.path.expanduser(r'~\Documents').
> > 
> > It's a bad idea to use os.chdir; it's better to use absolute paths:
> > 
> > src = askopenfilename(initialdir=os.path.expanduser(r'~\Documents'))
> 
> I thought there must be a way to pass the directory to askopenfilename, 
> but I just hadn't figured out how yet.
> 
> The other suggestions for using HOMEPATH also worked for both Mac and 
> Windows.
> 
> Thanks.

According to http://serverfault.com/questions/29948/difference-between-profile-and-home-path
it seems %userprofile% is more current than %homepath%
[though windows arcana is not exactly my forte ;-) ]


More information about the Python-list mailing list