0

有没有办法在不使用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()
4

1 回答 1

0

如果您使用的是 Winsows(您说的是Notepad这个词),您可以使用该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)
于 2013-09-19T11:33:49.857 回答