Открытие файлов средствами Windows по умолчанию


Пользователь вводит путь к папке, где находятся файлы (любые). Пользователь может выбрать файл из предложенного списка, чтобы открыть его. Нужно открыть файл средствами, предустановленными по умолчанию. Например, если пользователь выбирает .html файл, то этот файл открывается браузером по умолчанию. Файлы .txt - блокнотом и т.д.

import os


def open_file(f):
    file = open(f, 'r')  


try:
    os.chdir(input())
    default_dir = os.getcwd()
    flag = False  # if directory not have files
    list_file = []
    for i in os.listdir():
        try:
            os.chdir(i)
            os.chdir(default_dir)
        except NotADirectoryError:  # Its file
            flag = True
            list_file.append(i)
    if flag:
        choose_file = input()
        if choose_file in list_file:
            open_file(choose_file)
        else:
            pass
    else:
        print(default_dir + 'not have files')
except FileNotFoundError:
    pass

Функция open() открывает текстовые файлы внутри исполняемого кода. Чем можно заменить open(), чтобы решить эту проблему?


Ответы (1 шт):

Автор решения: n1tr0xs

Можно использовать os.startfile.

os.startfile('D:\\file.txt')
→ Ссылка