每天学一点python——GUI遍历文件夹

# -*- coding:utf-8 -*-
#author: 
#time: 2020/8/24
import tkinter as tk
from tkinter import filedialog
from tkinter import ttk
import os
import cv2 as cv
from PIL import Image

#Iterate over the folders
def iter_files(rootDir, extend_name):
    file_list = []

    #Iterate over the roots
    for root,dirs,files in os.walk(rootDir):
        for file in files:
            root = os.path.normpath(root) #格式化路径 斜杠问题
            file_name = os.path.join(root,file)  # 连接路径
            flag = file_name.endswith(extend_name)
            if flag:
                file_list.append(file_name)
    return file_list

def select_floder():
    path = filedialog.askdirectory()
    var.set(path)

def save_floder():
    path1 = filedialog.askdirectory()
    var1.set(path1)

window = tk.Tk()
window.title('my')
window.geometry('600x400')
var = tk.StringVar()
var1 = tk.StringVar()

# create path entry
e_path = tk.Entry(window, textvariable = var, width = 50)
e_path.place(x = 50, y = 10)

e_save_path = tk.Entry(window, textvariable = var1, width = 50)
e_save_path.place(x = 50, y = 50)

path_label = tk.Label(window, text = 'path:',bg = 'blue',width = 5)
path_label.place(x = 10, y = 10)
save_path_label = tk.Label(window, text = 'spath:',bg = 'red',width = 5)
save_path_label.place(x = 10, y = 50)


#create a combobox
val = tk.StringVar()
cmb = ttk.Combobox(window, textvariable = val, state = 'readonly' )
cmb['values'] = ('png','jpg','bmp','svg')
cmb.current(0)
cmb.place(x = 400, y = 10)

#combobox is vacant, oddness



b_select = tk.Button(window, text = 'select folder', command = select_floder,width = 20)
b_select.place(x = 300, y = 10)
b_save = tk.Button(window, text = 'save folder', command = save_floder,width = 20)
b_save.place(x = 300, y = 50)
t = tk.Text(window, height = 5)
t.place(x = 10, y = 150)
def process():
    var2 = e_path.get()
    ex_name = cmb.get()
    val.set(ex_name)
    file_list = iter_files(var2, ex_name)
    for name in file_list:
        t.insert('end',name)
        t.insert(tk.INSERT, '\n') #增加换行


b_process = tk.Button(window, text = 'process', command = process, width = 20)
b_process.place(x = 50, y = 100)


window.mainloop()

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
# -*- coding: utf-8 -*- # Form implementation generated from reading ui file 'aaa.ui' # # Created by: PyQt5 UI code generator 5.11.3 # # WARNING! All changes made in this file will be lost! import sys, os from PyQt5 import QtCore, QtWidgets, QtGui from PyQt5.QtCore import * from PyQt5.QtWidgets import * from PyQt5.QtGui import * from PyQt5 import QtCore, QtGui, QtWidgets class U_MainWindow(object): def setupUi(self, MainWindow): MainWindow.setObjectName("MainWindow") MainWindow.resize(1204, 836) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth(MainWindow.sizePolicy().hasHeightForWidth()) MainWindow.setSizePolicy(sizePolicy) self.centralwidget = QtWidgets.QWidget(MainWindow) self.centralwidget.setObjectName("centralwidget") self.tableWidget = QtWidgets.QTableWidget(self.centralwidget) self.tableWidget.setGeometry(QtCore.QRect(80, 240, 1041, 371)) self.tableWidget.setAutoScrollMargin(9) self.tableWidget.setRowCount(9) self.tableWidget.setColumnCount(8) self.tableWidget.setObjectName("tableWidget") item = QtWidgets.QTableWidgetItem() self.tableWidget.setVerticalHeaderItem(0, item) item = QtWidgets.QTableWidgetItem() self.tableWidget.setVerticalHeaderItem(1, item) item = QtWidgets.QTableWidgetItem() self.tableWidget.setVerticalHeaderItem(2, item) item = QtWidgets.QTableWidgetItem() self.tableWidget.setVerticalHeaderItem(3, item) item = QtWidgets.QTableWidgetItem() self.tableWidget.setVerticalHeaderItem(4, item) item = QtWidgets.QTableWidgetItem() self.tableWidget.setVerticalHeaderItem(5, item) item = QtWidgets.QTableWidgetItem() self.tableWidget.setVerticalHeaderItem(6, item) item = Q
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值