【问题标题】:Open a file without getOpenFileName?打开没有 getOpenFileName 的文件?
【发布时间】:2013-09-19 07:50:26
【问题描述】:

有没有不使用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()

【问题讨论】:

    标签: python file-io pyqt pyqt4 getopenfilename


    【解决方案1】:

    如果您使用的是 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)
    

    【讨论】:

      猜你喜欢
      • 2018-05-30
      • 1970-01-01
      • 2013-07-19
      • 1970-01-01
      • 2021-08-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多