前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Day21.Python项目案例

Day21.Python项目案例

作者头像
DataScience
发布2020-09-25 14:18:42
6250
发布2020-09-25 14:18:42
举报
文章被收录于专栏:A2DataA2Data

项目实操

1、批量修改文件名 2、发送邮件 --- 打卡领取 可配置。 3、批量合成头像图片 4、股票查询程序开发 --- 打卡领取 5、抽奖程序(源码奉献) - 页面顺时针抽奖 - 滚动抽奖

0、价值2亿的人工智能对话代码

代码语言:javascript
复制
 # !/usr/bin/env python
 # -*- coding:utf-8 -*-
 while True:
     print(input().strip("吗??")+"!")

1、Python批量修改文件名

代码语言:javascript
复制
 #!/usr/bin/env python
 # -*- coding:utf-8 -*-
 __author__ = 'JackFeng'
 
 #批量修改文件名
 #批量修改图片文件名
 #功能
     #以批量修改某文件夹下所有图片名称为例
     # 注释超详细,万能模板,读者可举一反三,适当修改模板,效果显著!
 
 import  os
 import sys
 import re
 
 def renameall():
     #filelist = os.listdir(r"文件所在路径") #待修改文件夹
     filelist = os.listdir(r"C:\\Users\\66860\\Desktop\\测试文件")
     print("修改前"+str(filelist)) #输出文件夹中包含的文件
     currentpath = os.getcwd() #得到进程当前工作目录
     os.chdir(r"C:\\Users\\66860\\Desktop\\测试文件")  #将当前工作目录修改为待修改文件夹的位置
 
     a=input("请输入你要更改的名称:" )
     num = 1  # 名称变量
     print(a)
     for fileName in filelist: #遍历文件夹中所有文件
         pat=".+\.(pdf|PDF)" #匹配文件名正则表达式 # 此处为修改pdf案例,故使用pdf格式
         pattern = re.findall(pat,fileName) #进行匹配
         # print(pattern)
         os.rename(fileName,(str(a)+str(num)+'.'+pattern[0])) #文件重命名
         num += 1 # 改变编号,继续下一项
         # os.rename(fileName, (str(a) + '.' + pattern[0]))
     print("=========---风-阶-限---===========")
     os.chdir(currentpath) #改回程序运行前的工作目录
     sys.stdin.flush() #刷新
     print("修改后:"+str(os.listdir(r"C:\\Users\\66860\\Desktop\\测试文件"))) #输出修改后文件夹中包含的文件
     print("==========--修改完成--===========")
 renameall()

3、批量合成头像

代码语言:javascript
复制
 #!/usr/bin/env python
 # -*- coding:utf-8 -*-
 __author__ = 'JackFeng'
 
 # @Time    : 2020/5/18 10:14
 # @Author  : JackFeng
 # @FileName: Photo.py
 # @Software: PyCharm
 # @Blog    :http://www.a2data.cn/
 
 import PIL.Image as Image
 import os
 
 
 # 定义初始图片的位置
 x = 0
 y = 0
 
 # 获取下载的头像文件
 curr_dir = "D://"
 ls = os.listdir(curr_dir + '1')
 print(ls)
 
 # 设定好友微信墙尺寸 Image.new() 方法。
 image = Image.new("RGB", (600, 600))
 
 # 打开微信好友图片  Image.open() 方法。
 # img = Image.open(r"D:/1/1.png")
 
 # 将微信头像重置为小图 使用 img.resize() 方法
 # img = img.resize((50, 50), Image.ANTIALIAS)
 
 #将照片 黏贴到我们的微信墙中  使用 image.paste() 方法。
 # image.paste(img, (x * 50, y * 50))
 
 #最后将制作完成的照片墙保存下来,使用 image.save() 方法。
 # img = image.save("D:\\1\\WeChat_Friends.jpg")
 
 
 
 # 遍历文件夹的图片
 for file_names in ls:
     print(file_names)
     try:
         # 依次打开图片
         img = Image.open(curr_dir + "1/" + file_names)
         print(img)
     except IOError:
         continue
     else:
         # 重新设置图片的大小
         img = img.resize((150, 150), Image.ANTIALIAS)
         # 将图片粘贴到最终的照片墙上
         image.paste(img, (x * 100, y * 150))
         # 设置每一行排13个图像
         x += 1
         if x == 6:
             x = 0
             y += 1
 # 保存图片为WeChat_Friends.jpg
 img = image.save(curr_dir + "WeChat_Friends.jpg")

4、抽奖中书籍

代码语言:javascript
复制
 #!/usr/bin/env python # -*- coding:utf-8 -*-__author__ = 'Jack'
# @Time    : 2019/8/22 11:07# @Author  : JackFeng# @Software: PyCharm# @Blog    :http://www.a2data.cn/ 

 class Luckgame:
     # 导入弹窗模块
     import tkinter.messagebox as mbox
     # 导入tkinter
     import tkinter as tk
     # 导入线程模块
     import threading
     import time
     def __init__(self):
         self.window = self.tk.Tk()
         self.window.title('DataScience-幸运抽奖')
         self.window.minsize(330, 330)
 
         # 设置初始变量
         # 设置界面
         self.set_label_btn()
         # 设置菜单
         self.set_menu()
         # 奖品列表
         self.gifts = [self.lab1, self.lab2, self.lab3, self.lab4, self.lab5, self.lab6, self.lab7, self.lab8, self.lab9,
                       self.lab10, self.lab11, self.lab12]
         # #是否开启循环的标志
         # self.isloop = False
         # 是否终止转盘
         self.run_flag = False
 
         self.window.mainloop()
 
     # 设置菜单
     def set_menu(self):
         # 创建总菜单
         menubar = self.tk.Menu(self.window)
         # 创建一个下拉菜单,并且加入文件菜单
         filemenu = self.tk.Menu(menubar, tearoff=0)
         # 创建下来菜单的选项
         filemenu.add_command(label="退出游戏", command=self.window.quit)
 
         # print author的函数
         def show_author():
             self.mbox.showinfo(title='微信公众平台:DataScience', message='DataScience:Ai_Craziest')
 
         filemenu.add_command(label="作者", command=show_author)
         # 将文件菜单作为下拉菜单添加到总菜单中,并且将命名为操作
         menubar.add_cascade(label="操作", menu=filemenu)
         # 显示总菜单
         self.window.config(menu=menubar)
 
     def set_label_btn(self):
         self.lab1 = self.tk.Label(self.window, text='原则', bg='red')
         self.lab1.place(x=20, y=20, width=60, height=60)
 
         self.lab2 = self.tk.Label(self.window, text='Hive\n编程指南', bg='white')
         self.lab2.place(x=90, y=20, width=60, height=60)
 
         self.lab3 = self.tk.Label(self.window, text='IDEA\n操作手册', bg='white')
         self.lab3.place(x=160, y=20, width=60, height=60)
 
         self.lab4 = self.tk.Label(self.window, text='MySql\n必知必会', bg='white')
         self.lab4.place(x=230, y=20, width=60, height=60)
 
         self.lab5 = self.tk.Label(self.window, text='SQL\nCook', bg='white')
         self.lab5.place(x=230, y=90, width=60, height=60)
 
         self.lab6 = self.tk.Label(self.window, text='Python\nCook', bg='white')
         self.lab6.place(x=230, y=160, width=60, height=60)
 
         self.lab7 = self.tk.Label(self.window, text='Python\n机器学习', bg='white')
         self.lab7.place(x=230, y=230, width=60, height=60)
 
         self.lab8 = self.tk.Label(self.window, text='Python\n机器实训', bg='white')
         self.lab8.place(x=160, y=230, width=60, height=60)
 
         self.lab9 = self.tk.Label(self.window, text='大数据\n面试题', bg='white')
         self.lab9.place(x=90, y=230, width=60, height=60)
 
         self.lab10 = self.tk.Label(self.window, text='机器学习\n个人笔记', bg='white')
         self.lab10.place(x=20, y=230, width=60, height=60)
 
         self.lab11 = self.tk.Label(self.window, text='数据挖掘\n概念与技术', bg='white')
         self.lab11.place(x=20, y=160, width=60, height=60)
 
         self.lab12 = self.tk.Label(self.window, text='Handbook\n(原版)', bg='white')
         self.lab12.place(x=20, y=90, width=60, height=60)
 
         # 开始按钮
         self.btn_go = self.tk.Button(self.window, text='开始', command=self.start_stak)
         self.btn_go.place(x=90, y=125, width=50, height=50)
         # 停止按钮
         self.btn_stop = self.tk.Button(self.window, text='结束', command=self.stop_run)
         self.btn_stop.place(x=160, y=125, width=50, height=50)
 
     def run_gifts(self):
         # while循环计数用变量i
         i = 0
         # 循环所有label,依次改变label的颜色,将其变为红色
         while True:
             if self.run_flag:
                 self.mbox.showinfo(title='感谢您对我的关注,温馨提示', message='DataScience:恭喜您获得:' + self.gifts[i - 1]['text'] + '电子版书籍')
                 self.mbox.showinfo(title='如果对您有帮助,请点赞分享', message='请前往微信公众号:DataScience,领取属于您的奖品!!!')
                 self.mbox.showinfo(title='如果对您有更多需要,请将此文分享到朋友圈', message='保留三小时以上截图哦,发送致DataScience后台,那么您可获取任意三本!!')
                 self.mbox.showinfo(title='本公众号第一次小互动,感谢您的参与', message='谢谢您的参与,下期有你更精彩!!')
                 # 是否循环转盘参数重置
                 self.run_flag = False
                 return
             try:
                 # 添加一个延时操作
                 self.time.sleep(0.1)
                 # 循环所有label,将所有label的颜色变为白色
                 for v in self.gifts:
                     v['bg'] = 'white'
                 self.gifts[i]['bg'] = 'red'
                 i += 1
                 # label组件计数归零
                 if i >= len(self.gifts):
                     i = 0
             except:
                 pass
 
     def stop_run(self):
         self.run_flag = True
 
     # 开启线程,单独跑一个循环的函数
     def start_stak(self):
         # 新建线程
         tread = self.threading.Thread(target=self.run_gifts)
         # 开始线程
         tread.start()
         # #打开循环线程的标志
         # self.isloop = True
 
 
 # 调用Luckgame游戏对象
 nsf = Luckgame()

5、滚动抽奖篇

代码语言:javascript
复制
 #!/usr/bin/env python
 # -*- coding:utf-8 -*-
 __author__ = 'Jack'
 
 # @Time    : 2020/6/22 11:07
 # @Author  : JackFeng
 # @FileName: Lotto.py
 # @Software: PyCharm
 # @Blog    :http://www.a2data.cn/
 
 
 import sys
 if sys.version_info[0] == 2:
     import Tkinter
     from Tkinter import *
 else:
     import tkinter as Tkinter
     from tkinter import *
 import random
 
 data = ['Kath', '大枫', 'Jack', 'Shon','DuRuo']
 going = True
 is_run = False
 
 
 def lottery_roll(var1, var2):
     global going
     show_member = random.choice(data)
     var1.set(show_member)
     if going:
         window.after(50, lottery_roll, var1, var2)
     else:
         var2.set('恭喜 {} !!!'.format(show_member))
         going = True
         return
 
 
 def lottery_start(var1, var2):
     global is_run
     if is_run:
         return
     is_run = True
     var2.set('幸运儿是你吗。。。')
     lottery_roll(var1, var2)
 
 
 def lottery_end():
     global going, is_run
     if is_run:
         going = False
         is_run = False
 
 
 if __name__ == '__main__':
     window = Tkinter.Tk()
     window.geometry('405x320+250+15')
     window.title('   DataScience   滚 动 抽 奖 器')
 
     bg_label = Label(window, width=70, height=24, bg='#ECf5FF')
     bg_label.place(anchor=NW, x=0, y=0)
 
     var1 = StringVar(value='即 将 开 始')
     show_label1 = Label(window, textvariable=var1, justify='left', anchor=CENTER, width=17, height=3, bg='#BFEFFF',
                         font='楷体 -40 bold', foreground='black')
     show_label1.place(anchor=NW, x=21, y=20)
     var2 = StringVar(value='幸运儿是你吗。。。')
     show_label2 = Label(window, textvariable=var2, justify='left', anchor=CENTER, width=38, height=3, bg='#ECf5FF',
                         font='楷体 -18 bold', foreground='red')
     show_label2.place(anchor=NW, x=21, y=240)
 
     button1 = Button(window, text='开始', command=lambda: lottery_start(var1, var2), width=14, height=2, bg='#A8A8A8',
                      font='宋体 -18 bold')
     button1.place(anchor=NW, x=20, y=175)
     button2 = Button(window, text='结束', command=lambda: lottery_end(), width=14, height=2, bg='#A8A8A8',
                      font='宋体 -18 bold')
     button2.place(anchor=NW, x=232, y=175)
 
     window.mainloop()
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-09-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 DataScience 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 项目实操
  • 0、价值2亿的人工智能对话代码
  • 1、Python批量修改文件名
  • 3、批量合成头像
  • 4、抽奖中书籍
  • 5、滚动抽奖篇
相关产品与服务
腾讯智能对话平台
腾讯智能对话平台(Tencent Bot Platform,TBP)专注于“对话即服务”的愿景,全面开放腾讯对话系统核心技术,为大型企业客户、开发者和生态合作伙伴提供开发平台和机器人中间件能力,实现便捷、低成本构建人机对话体验和高效、多样化赋能行业。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档