2014-01-19 46 views
0

我有2個問題試圖從目錄中檢索一組數據並將其顯示到ListWidget中。如何顯示文件夾和最近的項目

我作爲一個Linux用戶,我把我的ListWidget從桌面在內部包含比方說5個文件夾和5個其它項目(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) 
    
+0

請出示在其中添加的項目listWidget – qurban

+0

添加了部分代碼到我的主線,請看看。謝謝! – dissidia

回答

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) 
    

這將只添加目錄到listWidget忽略的文件。

  1. 如果你想獲得的文件和/或文件夾,使用時間的訪問時間下面的方法:

    import os.path as osp 
    accessTime = osp.getatime("path/to/dir") # returns the timestamp 
    

獲取訪問時間的所有目錄和一個它有最大的價值是最近訪問的目錄。這樣你可以得到最新的訪問3個目錄。

+0

我無法理解第二個問題。你能解釋一下嗎? listWidget現在包含5個目錄,你想如何顯示3個最近的目錄? – qurban

+0

是的目錄中有5個文件夾,但我想顯示最近3個已修改的文件夾,因此隱藏了其他2個..這是否有意義? – dissidia

+0

好吧,我更新我的答案。 – qurban

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

相關問題