[Tutor] How to programmatically EDIT a python file using an editorof my choice ?
Dominique
mydomdom at gmail.com
Mon Apr 13 11:07:19 CEST 2009
Sander Sweers <sander.sweers <at> gmail.com> writes:
>
> 2009/4/13 Dominique <mydomdom <at> gmail.com>:
> > What surprises me is that before calling the subprocess.Popen() method, I
> > normalized the path using:
> > filename = os.path.normpath(filename).
>
> It does.But do you also call os.path.normpath for the program path?
> See below an example.
>
> >>> import os
> >>> path = 'C:\Program Files\Notepad++\notepad++.exe'
> >>> os.path.normpath(path)
> 'C:\\Program Files\\Notepad++\notepad++.exe'
>
> Greets
> Sander
> _______________________________________________
> Tutor maillist - Tutor <at> python.org
> http://mail.python.org/mailman/listinfo/tutor
>
>
You are perfectly right. I forgot to do it also for the program path ! Thanks.
1) Code directly in the console:
In addition, the print instruction alters the path because of the backslash and
the n:
>>> import os.path
>>> path = 'C:\Program Files\Notepad++\notepad++.exe'
>>> path
'C:\\Program Files\\Notepad++\notepad++.exe'
>>> print path
C:\Program Files\Notepad++
otepad++.exe
2) Code inside a wxPython application:
But inside a wxPython app, the following code:
import os.path
import subprocess as s
path = 'C:\Program Files\Notepad++\notepad++.exe'
print "path before = ",path
path = os.path.normpath(path)
print "path after = ", path
s.Popen(path)
returns:
path before = C:\Program Files\Notepad++
otepad++.exe
path after = C:\Program Files\Notepad++
otepad++.exe
And of course it raises an exception when trying to open notepad++.
If I add r before the path or 2 backslashes inside the path, everything is ok.
It returns:
path before = C:\Program Files\Notepad++\notepad++.exe
path after = C:\Program Files\Notepad++\notepad++.exe
And Notepad++ is opened.
Note that the path returned only contains 1 backslash, as opposed to what is
returned if it is coded directly in the console.
That is what confused me.
I think it should be linked to wxPython.
Thanks a lot for your explanations and your time.
Dominique
More information about the Tutor
mailing list