如何显示文件夹和最近的项目

时间:2014-01-19 14:01:53

标签: pyqt4 qcombobox qlistwidget

我有两个问题,试图从目录中检索一组数据并将其显示到ListWidget中。

由于我是linux用户,我将ListWidget设置为从Desktop中读取我的目录,其中insides包含5个文件夹和5个misc项目(.txt,.py等)

  1. 目前我正在尝试让我的ListWidget只显示文件夹,但显然它会这样做,但它也会显示所有项目,使其总共10个而不是5个。 我试着在网上查找但我无法找到任何信息。有人可以帮帮我吗?

  2. 与Qns 1有关,我想知道是否可以在ListWidget中显示前3个最近的文件夹,如果正在检查复选框?

    import glob
    import os
    
    
    def test(object):
    testList = QListWidget()
    localDir =  os.listdir("/u/ykt/Desktop/test")
    testList.addItems(localDir)
    

2 个答案:

答案 0 :(得分:0)

  1. 我想您希望os.listdir()只返回给定路径中的目录名称。实际上它也会返回文件名。如果只想将目录添加到listWidget,请执行以下操作:

    import os
    osp = os.path
    def test(object):
        testList = QListWidget()
        dirPath = "/u/ykt/Desktop/test"
        localDir = os.listdir(dirPath)
        for dir in lacalDir:
            path = osp.join(dirPath, dir)
            if osp.isdir(path):
                testList.addItem(dir)
    
  2. 这将只向listWidget添加目录而忽略文件。

    1. 如果您想获取文件和/或文件夹的访问时间,请按照以下方法使用时间:

      import os.path as osp
      accessTime = osp.getatime("path/to/dir") # returns the timestamp
      
    2. 获取所有目录的访问时间,具有最大值的访问时间是最新访问的目录。这样您就可以获得最新访问的3个目录。

答案 1 :(得分:0)

也许您应该像以下一样尝试“QFileDialog”:

class MyWidget(QDialog):
    def __init__(self):
        QDialog.__init__(self)
        fileNames = QFileDialog.getExistingDirectory(self, "list dir", "C:\\",QFileDialog.ShowDirsOnly)
        print fileNames

if __name__ == "__main__":
    app = QApplication(sys.argv)
    widget = MyWidget()
    widget.show()
    app.exec_()

第二个问题,您可以参考:enter link description here