#!/usr/bin/python
# -*- coding: utf-8 -*-
import os
commandLine = u'C:/WINDOWS/notepad.exe "C:/Temp/мой файл.txt"'
params = commandLine.split(' ')
os.spawnve(os.P_NOWAIT, params[0], params, os.environ)
1. Хотелось бы пользоваться переменной окружения PATH, чтобы иметь возможность писать просто “notepad”, а не “C:/WINDOWS/notepad.exe”. Насколько я понял, эту возможность даёт os.spawnvpe(), но её нет под Windows, а мне нужно кросс-платформенно.
2. Если в командной строке употреблены двойные кавычки для указания путей с пробелами, .split(' ') работает неверно.
3. Хотелось бы правильно интерпретировать тильду (~) для определения домашнего каталога.
По первому и третьему вопросу пока не приходит в голову ничего, кроме “ручного” перелопачивания os.environ с поиском исполняемого файла, и тупой замены “~” на os.environ. Но это как-то глупо выглядит… По второму вопросу пока вообще нет идей.