学前分享:
很高兴大家坚持21天,
这里为大家分享一些常用,有趣的案例(源码也有哦)
21天,
从入门到上手,
为坚持加油的自己点个赞吧。
项目实操
1、批量修改文件名
2、发送邮件 --- 打卡领取 可配置。
3、批量合成头像图片
4、股票查询程序开发 --- 打卡领取
5、抽奖程序(源码奉献)
- 页面顺时针抽奖
- 滚动抽奖
# !/usr/bin/env python
# -*- coding:utf-8 -*-
while True:
print(input().strip("吗??")+"!")
#!/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()
#!/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")
#!/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()
#!/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()
往期推荐
Day20.python操作数据库
Day19.python时间和日期
Day18.python文件/目录
Day17.String字符串处理库
Day16.文件的处理
Day15.异常的处理
Day14.模块&包
Day13.继承&多态
Day12.魔法方法&方法重写
Day11.类和对象这回事儿
Day10.高阶函数介绍
Day9.函数进阶
Day8.函数那些事儿
Day7.数据类型-集合
Day6.数据类型-字典
Day5.布尔&元组&字符串大合集
Day4.数据类型-列表
Day3.判断&循环语句
Day2.不就是运算符吗!
Day1.基本操作与格式规范
学Python的正确方式,100%有用!
昨天 | 今天 | 明天 |
前者为鉴 |
把握现在 |
开创未来 |
认识Python 2020.09.01
哎呦,我会文件处理咯 2020.09.18
2020.08.30 Python环境
2020.09.09 函数那些事
2020.09.23 操作一波数据库
恭喜完课
DATA SCIENCE
点个在看,你最好看