我有两个问题,试图从目录中检索一组数据并将其显示到ListWidget中。
由于我是linux用户,我将ListWidget设置为从Desktop中读取我的目录,其中insides包含5个文件夹和5个misc项目(.txt,.py等)
目前我正在尝试让我的ListWidget只显示文件夹,但显然它会这样做,但它也会显示所有项目,使其总共10个而不是5个。 我试着在网上查找但我无法找到任何信息。有人可以帮帮我吗?
与Qns 1有关,我想知道是否可以在ListWidget中显示前3个最近的文件夹,如果正在检查复选框?
import glob
import os
def test(object):
testList = QListWidget()
localDir = os.listdir("/u/ykt/Desktop/test")
testList.addItems(localDir)
答案 0 :(得分:0)
我想您希望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添加目录而忽略文件。
如果您想获取文件和/或文件夹的访问时间,请按照以下方法使用时间:
import os.path as osp
accessTime = osp.getatime("path/to/dir") # returns the timestamp
获取所有目录的访问时间,具有最大值的访问时间是最新访问的目录。这样您就可以获得最新访问的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