Модуль подпроцесса Python, эквивалентный двойному щелчку в Windows - PullRequest
1 голос
/ 14 декабря 2010

Я хочу открыть файл с помощью модуля subprocess, как если бы файл был дважды нажат в Проводнике Как мне это сделать?

Я попробовал следующую строку:

subprocess.call("C:/myfile.csv", shell=True)

, который выдает ошибку, говорящую:

Синтаксис команды: неверен.
«C: \» не распознается как внутренняя или внешняя команда, работающая программа или командный файл.

Как мне эмулировать двойной щелчок, используя subprocess? В основном я хочу открыть файл CSV в Excel 2007.

Ответы [ 3 ]

7 голосов
/ 14 декабря 2010
os.startfile(r'C:\myfile.csv')

(только для Win32. Для Mac запустите процесс с 'open filename'; в Linux / freedesktop-in-general, 'xdg-open filename'.)

1 голос
/ 14 декабря 2010

Я думаю, что частью вашей проблемы является то, что вы используете косую черту в стиле Unix / в качестве разделителя пути вместо обратной косой черты Windows.Похоже, что Windows интерпретирует /myfile.csv как аргумент для программы C:, поэтому вы получаете это сообщение.

Однако, если вы исправите это, я думаю, вы просто скажете, чточто C:\myfile.csv не программа.

0 голосов
/ 15 февраля 2013

Я знаю, что это немного поздно, но чтобы сделать это в Python 2.x (не уверен насчет 3), вы должны использовать модуль subprocess, ссылающийся на Popen.Вот код:

import subprocess
subprocess.Popen(r'explorer /select, "C:\"')

Он в основном открывает файл, а затем открывает его в программе по умолчанию.

...