没有getOpenFileName打开文件?

时间:2013-09-19 07:50:27

标签: python file-io pyqt pyqt4 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 个答案:

答案 0 :(得分:0)

如果你在Winsows上(你说的是记事本),你可以使用subprocess模块打开当前与文件类型相关的任何程序的任何文件,如下所示: / p>

import subprocess

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

但是shell=True参数有点危险,尤其是文件名作为输入。

您也可以使用webbrowser模块,但不支持使用它我猜:

import webbrowser
webbrowser.open(self.filename)