Если вы хотите пойти по пути subprocess.call()
, в Windows это должно выглядеть так:
import subprocess
subprocess.call(('cmd', '/C', 'start', '', FILE_NAME))
Вы не можете просто использовать:
subprocess.call(('start', FILE_NAME))
потому что start
- это не исполняемый файл , а команда программы cmd.exe
. Это работает:
subprocess.call(('cmd', '/C', 'start', FILE_NAME))
но только если в FILE_NAME нет пробелов.
В то время как subprocess.call
метод ru правильно цитирует параметры, команда start
имеет довольно странный синтаксис, где:
start notes.txt
делает что-то еще, кроме:
start "notes.txt"
Первая строка в кавычках должна установить заголовок окна. Чтобы заставить его работать с пробелами, мы должны сделать:
start "" "my notes.txt"
что и делает код сверху.