howto add a sub-directory to the searchpath / namespace ?

david david at nospam.spam
Thu Oct 11 00:17:05 EDT 2007


r" indicates a 'regular expression' string, normally
called a raw string. It means that \ characters are
treated using the regex syntax rather than the c syntax.

In the regex syntax, \ characters are escape characters
only at the end of the string, which allows you to
easily use Windows directory notation as long as you
don't need to end a path with a \

sys.path.append("c:\\code\\newcode")
sys.path.append(r"c:\code\newcode")

The os.path module contains additional path handling methods.

[david]


stef mientki wrote:
> Larry Bates wrote:
>> stef mientki wrote:
>>  
>>> hello,
>>>
>>> my program has become a bit large,
>>> and now I want to split the files over several subdirectories.
>>> So in the example shown below, I just moved the files f1.py and f2.py 
>>> to a deeper subdirectory.
>>>
>>> basedirectory\
>>>    mainfile.py
>>>    file1.py
>>>    file2.py
>>>    subdir1\
>>>       __init__.py
>>>       f1.py
>>>       f2.py
>>>
>>> Now I don't want (even can't) change my program,
>>> to change imports from
>>>    from f1 import something
>>> into
>>>    from subdir1.f1 import something
>>> simply because f1.py and f2.py are python files dropped by users
>>> and I do not know on forehand what will be dropped.
>>>
>>> I looked into the description of __init__.py,
>>> in the hope I could make f1.py and f2.py available as if they were in 
>>> the basedirectory,
>>> but i couldn't find a way.
>>>
>>> Is there a way to make f1.py and f2.py available as if they were 
>>> located in the base directory,
>>> without knowing their names (so in general all py-files in the 
>>> subdir1)  ??
>>>
>>> thanks,
>>> Stef Mientki
>>>
>>>
>>>     
>> Put basedirectory\subdir in the PYTHONPATH environment variable or
>>
>> os.path.append(r'basedirectory\subdir1')
>>
>> in the body of your program.
>>
>>   
> thanks Larry,
> after a bit of fiddling, I think "os." must be "sys."
> and basedirectory shouldn't be in.
> so it becomes
>    sys.path.append  ( r'subdir1' )
> But what the .. is that "r" in front of the appended path ?
> 
> cheers,
> Stef Mientki
> 
> 
>> -Larry
>>   
> 



More information about the Python-list mailing list