Sorry for not being explicit enough. I am aware that this would work if I
called python.exe path-to-script.py with shell=False.
In my Python program, I parse an XML file like the one I have included below.
Then I loop through the paths of the apps listed in it and run them by calling
something like this:
for app_path in app_paths:
args = shlex.split(app_path.replace("\\", "\\\\"))
args = [arg.replace("\\\\", "\\") for arg in args]
args[0] = os.path.expandvars(args[0])
subprocess.Popen(args, shell='__WXMSW__' in wx.PlatformInfo)
I want users to be able to enter paths in the XML file exactly the way they
would be entered in a Windows shortcut. Since it is possible to make a Windows
shortcut for path-to-script.py without the python.exe in front of it and have
it open in its own command prompt, I want to be able to do the same thing in my
XML file, but this is what I cannot figure out.
By the way, is there a simpler way to use shlex.split and return valid Windows
paths than the way I am doing (as shown above)?
Thank you.
-- Timothy
*** Contents of app_list.xml below ***
<?xml version='1.0' encoding='utf-8'?>
<apps>
<app name="Mozilla Firefox">%ProgramFiles%\Mozilla Firefox\firefox.exe</app>
<app name="Mozilla Thunderbird">%ProgramFiles%\Mozilla
Thunderbird\thunderbird.exe</app>
<app name="LibreOffice Writer">%ProgramFiles%\LibreOffice
4\program\swriter.exe "C:\Users\Timothy\Documents\myfile.odt"</app>
<app name="**Python
script**">C:\Users\Timothy\Documents\Python\myscript.py</app>
</apps>
--
https://mail.python.org/mailman/listinfo/python-list