Как запустить файл excel из python?

Не открыть для чтения или записи, а просто открыть файл xlsx в экселе.
Или например любой другой файл: docx, jpg, mp3 в программе по умолчанию для этого типа расширения.
  • Вопрос задан
  • 9542 просмотра
Решения вопроса 1
TomasHuk
@TomasHuk Автор вопроса
В итоге нашел четыре способа для запуска любых файлов (правда у всех общая проблема - не запускаются файлы, если есть пробелы в имени или пути):
1. Самый простой и правильный, через subprocess:
import subprocess
subprocess.call("d:\\2014.xlsx", shell=True)

или
import subprocess
subprocess.Popen("d:\\2014.xlsx", shell=True)

Нашел в интернете:
Для запуска команд системы используется две функции subprocess.call() и subprocess.Popen(). Основное отличие этих функций между собой: функция subprocess.call() блокирует выполнение сценария до получения ответа, в то время как функция subprocess.Popen() - нет.
subprocess.call() - используется, если нужно просто запустить команду, а вывод от нее сохранять не требуется.
subprocess.Popen() - используется, если требуется захватить вывод команды

Все ОК, просто и четко.
2. Другой отличный вариант:
os.startfile('recomendations.log')
Эта функция открывает файл с помощью программы, указанной в реестре Windows для файлов этого типа.
3. Через win32com.client и WScript.Shell:
import win32com.client
shell = win32com.client.Dispatch("WScript.Shell")
shell.Run('d:\meridian.jpg')

4. Метод, который не советую, через os:
import os
os.system(r'd:\2014.xlsx')

Выскакивает окно cmd.exe что плохо.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
@Sollar_MOD
Программист самоучка (по книгам то есть)
Через os можно - надо не просто:
os.system("путь_к_файлу")
, а :
os.system("start путь_к_файлу").
Тогда командная строка закроется.
Ответ написан
Комментировать
@v_prom
просто запустить его, наверняка в ос есть привязка по типу файла.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы