Trouble getting to windows My Documents directory

Mark Storkamp mstorkamp at yahoo.com
Fri Jul 10 17:25:08 CEST 2015


In article <mailman.402.1436541332.3674.python-list at python.org>,
 MRAB <python at mrabarnett.plus.com> 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.


More information about the Python-list mailing list