Открыть файл без getOpenFileName?

Есть ли способ открыть файлы без использования QFileDialog.getOpenFileName параметр? Дело в том, что у меня есть несколько кнопок, при нажатии на которые появляется блокнот, в который можно вводить что угодно в блокноте. Затем вы можете сохранить все, что вы написали в этом блокноте, в виде текстового файла. Что я хочу сделать, так это, если я снова нажму кнопку, я снова открою файл, который я ранее отредактировал через блокнот, и смогу продолжить ввод с того места, где я остановился. Однако я не хочу использовать getOpenFileName, Можно ли открыть файл без использования этой функциональности? Ниже моя попытка, но мое утверждение if продолжает оцениваться как ложное. Если бы кто-то мог помочь, это было бы здорово. Спасибо!

    #Testing if the file already exists
    if(os.path.exists("~/Desktop/" +self.fileName + ".txt")):
        f = open(self.fileName + ".txt", 'r')
        filedata = f.read()
        self.text.setText(filedata)
        f.close()
    #Opens a new notepad if there wasn't a previous fileconstructed
    else:
        self.textBox = textBoxWindow(self.fileName)
        self.textBox.show()

1 ответ

Если вы находитесь на Winsows (вы сказали слово Блокнот), вы можете использовать subprocess Модуль для открытия любого файла с любой программой, в настоящее время связанной с типом файла, следующим образом:

import subprocess

self.filename = r'C:\test.txt'
subprocess.call(['start', self.filename], shell=True)

Но shell=True Аргумент довольно опасен, особенно имя файла входит в качестве входных данных.

Вы можете использовать webbrowser Модуль тоже, хотя и не поддерживается его использование, я думаю:

import webbrowser
webbrowser.open(self.filename)
Другие вопросы по тегам