Maybe a dumb question

Chris Liechti cliechti at
Tue Sep 10 19:10:00 EDT 2002

Fabien HENON <fabien.henon at> wrote in 
news:3D7E6B0E.4060709 at

> I have written an editor for Povray using Python, Tkinter and Pmw
> It is available at :
> The software includes one main file and 6 others which are for the 
> language customization. People can choose between French, English, 
> German,...
> All the translations for these languages are stored in files called 
>,, ....when the editor 
> is started.
> I would like to clean the directory a bit and put all these 'languages 
> files' into a sub-directory called Lang.
> How do I tell python to look into a particular sub-directory when 
> importing a file.
> I tried the os.path.join syntax, but to no avail.
> Below is the bit of code that imports the language file from the current 
>   working directory :
> try :
>    homedir = os.path.expanduser('~')
>    fd = open(homedir+"/.pyvonrc", 'r')
>    for line in fd.readlines():
>       if line.startswith("Language :"):
>      line=line[11:]          
>      if   line.startswith("francais"):from menu_francais import *
>          elif line.startswith("english"):from menu_english import *
>          elif line.startswith("deutsch"):from menu_deutsch import *
>          ...............

do you have considered the ConfigParser module? it would make it easy to 
parse a config file...

and for your problem, if you avoid "from x import *" , which isn't 
recomended for broader usage anyway, you could use something like that:

config = ConfigParser.ConfigParser()[os.path.join(homedir, "/.pyvonrc")]) 
    	lang = __import__(config.get("Environment", "Language"))
except ImportError:
    	print "Wanrning: could not load language file, using default"
    	lang = __import__("")

which would require an entry like that in the config file:

you could also look at other ways to localize your program.
i think "locale" and "i18n" should help in a google search.


Chris <cliechti at>

More information about the Python-list mailing list