Как открыть любой файл с помощью os.startfile() с помощью определенного приложения?
import os
os.startfile("C:\\Windows\\System32\\cmd.exe")
Есть ли аргумент в startfile(), для указания с помощью чего открыть файл?
Ответы (2 шт):
Автор решения: web developer
→ Ссылка
import winreg
# Путь к расширению файла .txt в реестре
file_extension = '.txt'
reg_path = f'Software\Classes\{file_extension}'
# Создание/открытие ключа расширения файла в реестре
key = winreg.CreateKey(winreg.HKEY_CLASSES_ROOT, reg_path)
# Установка значения (путь к исполняемому файлу) в ключе
winreg.SetValue(key, None, winreg.REG_SZ, 'C:\Path\To\Your\TextEditor.exe')
# Закрытие ключа
winreg.CloseKey(key)
Автор решения: n1tr0xs
→ Ссылка
Нет, такого аргумента у os.startfile нет. Но можно использовать subprocess.Popen:
import subprocess
prog_path = r"C:\Windows\system32\notepad.exe"
file_path = r"D:\file.exe"
p = subprocess.Popen([prog_path, file_path])
Или если уж очень хочется - os.system:
import os
prog_path = r"C:\Windows\system32\notepad.exe"
file_path = r"D:\file.exe"
os.system(f"{prog_path} {file_path}")