Trouble getting to windows My Documents directory

MRAB python at mrabarnett.plus.com
Fri Jul 10 17:12:17 CEST 2015


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'))



More information about the Python-list mailing list