Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Default path for files

0 views
Skip to first unread message

Rotwang

unread,
Jan 24, 2010, 10:08:15 AM1/24/10
to
Hi all, can anybody tell me whether there's a way to change the default
location for files to be opened by open()? I'd like to be able to create
files somewhere other than my Python folder without having to write the
full path in the filename every time. Sorry if this is a stupid
question, I don't know much about programming.

Krister Svanlund

unread,
Jan 24, 2010, 10:14:25 AM1/24/10
to Rotwang, pytho...@python.org

Check out http://docs.python.org/library/os.html and the function
chdir it is what you are looking for.

Rotwang

unread,
Jan 24, 2010, 10:49:00 AM1/24/10
to

Thank you. So would adding

import os
os.chdir(<path>)

to site.py (or any other module which is automatically imported during
initialisation) change the default location to <path> every time I used
Python?

Christian Heimes

unread,
Jan 24, 2010, 11:01:27 AM1/24/10
to pytho...@python.org
Rotwang wrote:
> import os
> os.chdir(<path>)
>
> to site.py (or any other module which is automatically imported during
> initialisation) change the default location to <path> every time I used
> Python?

First of all you shouldn't alter the site module ever! The optional
sitecustomize module exists to make global changes.

A library must never change the current working directory. It's up to
the application to choose the right working directory. If you mess with
the working directory in a library or global module like site you *will*
break applications. Python has multiple ways to modify the list of
importable locations, either globally, for the current user or the
current application. Use them wisely!

Christian

Rotwang

unread,
Jan 24, 2010, 11:33:25 AM1/24/10
to

OK, thanks.

Günther Dietrich

unread,
Jan 24, 2010, 1:04:48 PM1/24/10
to
Rotwang <sg...@hotmail.co.uk> wrote:

>> Check out http://docs.python.org/library/os.html and the function
>> chdir it is what you are looking for.
>
>Thank you. So would adding
>
>import os
>os.chdir(<path>)
>
>to site.py (or any other module which is automatically imported during
>initialisation) change the default location to <path> every time I used
>Python?

Don't change the library modules. It would catch you anytime when you
expect it least.

See for the environment variable PYTHONSTARTUP and the associated
startup file.

Best regards,

Günther

Gabriel Genellina

unread,
Jan 25, 2010, 2:47:57 PM1/25/10
to pytho...@python.org
En Sun, 24 Jan 2010 15:04:48 -0300, G�nther Dietrich
<gd_u...@spamfence.net> escribi�:

sitecustomize.py would be a better place. PYTHONSTARTUP is only used when
running in interactive mode.
Anyway, I'd do that explicitely on each script that requires it; after
upgrading the Python version, or moving to another PC, those scripts would
start failing...

--
Gabriel Genellina

Nobody

unread,
Jan 30, 2010, 11:01:19 AM1/30/10
to

If you pass a relative pathname to open() (or any other function which
expects a filename), it will be interpreted relative to the current
directory.

Given that the current directory always seems to be the Python directory,
and you refer to it as a "folder", I'm guessing that you're running Python
on Windows via a shortcut in the Start Menu or on the desktop.

In which case, the ideal solution is probably to open the Properties
dialog for the shortcut and change the "Start in" field to your
"My Documents" directory (or some subdirectory of it).

Python itself won't care which directory it starts in.

Aahz

unread,
Jan 30, 2010, 1:59:47 PM1/30/10
to
In article <hjhnp0$7bc$1...@news.eternal-september.org>,

from os.path import join
BASE = '/path/to/root'
f = open(join(BASE, filename))

Trust me, you'll be much happier with this.
--
Aahz (aa...@pythoncraft.com) <*> http://www.pythoncraft.com/

import antigravity

0 new messages