2013-09-19 4 views
0

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

#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() 

ответ

0

Если вы на 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)