QFileSystemModel

pyqt下创建文件夹,并自定义输入和缺省值(QFileSystemModel的用法)

1. 获取指定的路径内容并显示

    self.sample_type = QTreeView()
    fileDir = r'./db/sample_data'
    self.sample_type.setHeaderHidden(True)#不显示表头
    self.sample_type.setColumnHidden(1,True)#不显示行头
    self.Dirmodel = QFileSystemModel()
    self.Dirmodel.setRootPath(QDir.currentPath())
    # self.Dirmodel.setFilter(QDir.Dirs)#内容过滤,只显示文件夹
    self.sample_type.setModel(self.Dirmodel)
    self.sample_type.setRootIndex(self.Dirmodel.index(fileDir))#
    self.sample_type.setColumnHidden(1,True)
    self.sample_type.setColumnHidden(2,True)
    self.sample_type.setColumnHidden(3,True)#隐藏不需要的列
    #然后再窗口加入qtreeview就可以显示了

2. 获取路径

def getDir(self,index):#获取鼠标指向索引,还可以预览图
    self.FilePath = self.Dirmodel.filePath(index)#获取鼠标点击指定路径
    self.index_rm = index	#index就是QModelIndex

self.FilePath得到是电脑的绝对路径

3.新建目录

def AddItem(self,flag):#新建目录或文件
    if flag==1:
        dir_path = r'./db/sample_data'
        dir_name,ok = QInputDialog.getText(self,'文件名','输入文件夹名称',QLineEdit.Normal)
        if dir_name not in os.listdir(dir_path) and len(dir_name) != 0:   # 文件夹名称不存在才创建
            os.mkdir(dir_path+'./'+dir_name)
        else:
            QMessageBox.warning(self,'警告','名称已存在或为空')

os.mkdir用来创建文件夹,QMessageBox.warning显示报警信息

4. 删除目录或文件

if self.Dirmodel.isDir(self.index_rm):#判断是否文件夹
    shutil.rmtree(self.FilePath)#递归删除,可以删除非空文件夹
    self.FilePath=''
    print("删除文件夹")
else:
    print('删除文件')
    self.Dirmodel.remove(self.index_rm)
    dirName4 = self.FilePath.split('/')[-4]#切片取倒数第四个路径名
    dirName1 = (self.FilePath.split('/')[-1]).split('.')[-2]#切片取不带后缀的文件名,也可以用正则表达式r'(.+?)\.'
    dir_path = self.FilePath[:self.FilePath.rfind('/')]#获取上一级路径
    os.remove(dir_path+'./'+dirName1+'.bmp')
    self.FilePath=''

创建文件夹,创建文件,删除文件夹,显示资源管理器内容,获取上级目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值