"Dominique" <mydom...@gmail.com> wrote

I tried several other ways without any success:
subprocess.Popen(args = ["notepad++.exe", filename])
subprocess.Popen(args = ["C:\Program Files\Notepad++\notepad++.exe", filename])

I wonder if it is due to the location of the softwares.

In a way. I think it's because you are using single backslashes.
You need to make the command a raw string by putting an r in front.:

subprocess.Popen([r"C:\Program Files\Notepad++\notepad++.exe", filename])

Otherwise Python gets confused by \n and thinks its a newline character

If not is thre an API to the editor, for example Windows editors
may have a COM interface that you could access.

Do you mean that it is not always possible to open another software from python,
notably if the software doesn't have a COM interface ?

You can always open the program but some programs may not take
command line arguments to open a file. Thuis you need to drive them
via COM to effectively use the File->Open menu option from Python.

Fortunately most editors will accept a command line filename so its
only rarely an issue for editors. But things like statistics [packages,
graphics editors etc can be more difficult.

ed = os.getenv('EDITOR')
vi = os.getenv('VISUAL')

os.getenv is always None,

Presumably you don;t have either EDITOR or VISUAL defined.
What if you try

os.getenv('PATH')

That should return something.

which may be correct since I am on Windows ?

No, getenv() works on any OS, although Unix tends to use environment
variables much more than Windows, which favours the registry.

Alan G.

_______________________________________________
Tutor maillist  -  Tutor@python.org
http://mail.python.org/mailman/listinfo/tutor

Reply via email to