学习记录——通过表格移动照片

通过表格移动图片
这次的界面语言相较于上一次进行了一些优化
第一次使用python写界面的时候,总是先入为主的认为,想要连接两段代码或者是连接两个功能,一定要先将输入的内容等于一个变量再去使用,其实可以直接使用.get去进行传值,更方便且不会有变量类型错误等问题的出现。

def show():
    print('图片地址:%s' % entry1.get())
    print('表格地址:%s' % entry2.get())
    print('文件储存地址:%s' % entry3.get())
    
-------------------------------------------------------------
def print_name():
    s = e.get('1.0','5.5')
    path = s.strip()
    print(path)
def print_name1():
    ss = e1.get('1.0','5.5')
    path2 = ss.strip()+'.xlsx'
    print(path2)
本次与上一次的代码区别,输入内容直接获取然后使用,没有用变量做中转,后续直接调用.get即可。

```python
import tkinter as tk
import xlrd
import os
import shutil
import datetime
import xlwt

starttime=datetime.datetime.now()
root = tk.Tk()
root.title('图片移动工具')



# 设置标签信息
label1 = tk.Label(root, text='图片地址:')
label1.grid(row=0, column=0)
label2 = tk.Label(root, text='表格地址:')
label2.grid(row=1, column=0)
label3 = tk.Label(root, text='文件储存地址:')
label3.grid(row=2, column=0)

# 创建输入框
entry1 = tk.Entry(root)
entry1.grid(row=0, column=1, padx=10, pady=5)
entry2 = tk.Entry(root)
entry2.grid(row=1, column=1, padx=10, pady=5)
entry3 = tk.Entry(root)
entry3.grid(row=2, column=1, padx=10, pady=5)

# 创建按键
def show():
    print('图片地址:%s' % entry1.get())
    print('表格地址:%s' % entry2.get())
    print('文件储存地址:%s' % entry3.get())


button1 = tk.Button(root, text='开始移动', command=show).grid(row=3, column=0,
                                            sticky=tk.W, padx=30, pady=5)
button2 = tk.Button(root, text='退出', command=root.quit).grid(row=3, column=1,
                                          sticky=tk.E, padx=30, pady=5)


tk.mainloop()

img_path = entry1.get()      #读存放原图片文件的路径
img_name = os.listdir(img_path)                  # 得到文件夹下的所有文件名称
# print(img_name)
fileName = entry2.get()     #报告所在位置
bk=xlrd.open_workbook(fileName)                  #打开报告
shxrange=range(bk.nsheets)              #计算表里sheet的总长度
print(shxrange)
sh=bk.sheet_by_name("Sheet1")
# try:
#     sh=bk.sheet_by_name("Sheet1")            #指定表里想要读取的sheet的名字report
# except:
#     print("未找到指定表")

nrows=bk.sheet_by_name("Sheet1").nrows #获取报告内数据总行数
print(nrows)

os.mkdir(entry3.get())       #创建一个文件夹OutImg,存放想要拷贝的图片
print("创建完成")

for i in range(1,nrows):#循环读表里数据,1是从表内第二行开始,nrows是指刚才读取的最大行数,将读取的行数传给i
    row_data=sh.row_values(i)                #读取i行对应的值
    name=str(row_data[0])                    #读取上行读取的值的第一个值,就是图片的名字
    for j in img_name:                       #将读取的图片的名字循环赋值给j
        print(j)
        print(name)
        if name==j:
            outimg = entry3.get()  # 图片存储路径
            shutil.copy(os.path.join(img_path, name), os.path.join(outimg))
            # 将名称匹配上的图片拷贝到新建的文件夹内,如果是复制的话,就改成copy,如果是剪贴就用move
        else:
            print('----------------------------------')
i = i + 1
endtime = datetime.datetime.now()
time = (endtime - starttime).seconds
print(starttime)
print(endtime)
print(time)

在这里插入图片描述
os.listdir() 获取文件夹下所有文件的名称
os.mkdir() 创建新文件夹
starttime=datetime.datetime.now() 获取当前时间

最后加了一个时间计算,移动图片总共需要多少时间。
现在是只能新建文件夹,用已有的就不行,后面可以增加勾选,是否新建文件夹,然后现在是只能移动图片,后续也可以增加选项移动图片还是复制图片。

在此次制作工具得过程中也注意到了一个问题,将py文件转成exe文件的时候,如果提示缺失某一个库,但是你python里有这个库,cmd里也有,那可能就是因为缺少的库与所转换的文件不在同一个文件夹内,导致调用不到,提示缺失,此时就可以使用这一条指令来调用这个缺失的库完成exe转换:
D:\pythonWork\baiduai> pyinstaller -F machine1.py --hidden-import 缺失的内容,这次我用的是-w,完成后的工具使用时可以隐藏dos窗口,好用!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值