Python小功能函数仓库【不定时更新】
目 录
=================================================================================
时间
格式化
格式化日期函数
def formatTime(longtime): # 2020-07-05 14:13:48
"""
格式化日期时间
:param longtime: 要格式化的时间
:return: 格式化的时间
"""
import time
return time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(longtime))
=================================================================================
文件
文件基本信息
获取信息
import os
def getFileinfo():
with open('fileinfo.txt','w',encoding='utf-8') as f: # 在测试前创建一个文件,可以省略
f.write('这是一个用于测试获取文件基本信息的文件!')
fileinfo = os.stat('fileinfo.txt')
print('文件完整路径:', os.path.abspath('fileinfo.txt'))
print('索引名:', fileinfo.st_ino)
print('设备号:', fileinfo.st_dev)
print('文件大小:', formatByte(fileinfo.st_size))
print('最后一次访问时间:', formatTime(fileinfo.st_atime))
print('最后一次修改时间:', formatTime(fileinfo.st_mtime))
print('最后一次状态变化时间:', formatTime(fileinfo.st_ctime))
格式化大小
def formatByte(number):
"""
格式化文件大小
:param number:要格式化的字节数
:return:
"""
for (scale, label) in [(1024*1024*1024, 'GB'),(1024*1024, 'MB'),(1024,'KB')]:
if number >= scale: # 如果文件大小大于或等于1KB
return "%.2f %s" % (number*1.0/scale, label)
elif number == 1: # 如果文件大小为1KB
return "1 字节"
else: # 处理小于1KB的情况
byte = '%.2f' % (number or 0)
# 去掉结尾的.00,并且加上单位“字节”
return (byte[:-3] if byte.endswith('.00') else byte) + "字节"
=================================================================================
系统
=================================================================================
网络
=================================================================================
数据库
MySQL
连接数据库
import pymysql
# 打开数据库连接,参数1:主机名或IP;参数2:用户名;参数3:密码;参数4:数据库名称
db = pymysql.connect("localhost","root","root","Mydatabase")
创建数据表
import pymysql
# 打开数据库连接,参数1:主机名或IP;参数2:用户名;参数3:密码;参数4:数据库名称
db = pymysql.connect("localhost","root","root","Mydatabase")
# 使用cursor()方法创建一个游标对象cursor
cursor = db.cursor()
# 执行SQL,如果表存在,则删除
cursor.execute("DROP TABLE IF EXISTS books")
# 使用预处理语句创建表
sql = """
create table books(
id int(8) not null auto_increment,
name varchar(50) not null,
primary key(id)
)engine=MyISAM auto_increment=1 default charset=utf8;
"""
# 执行sql命令
cursor.execute(sql)
# 关闭数据库连接
db.close()
批量增加多条数据
import pymysql
# 打开数据库连接,参数1:主机名或IP;参数2:用户名;参数3:密码;参数4:数据库名称
db = pymysql.connect("localhost","root","root","Mydatabase")
# 使用cursor()方法创建一个游标对象cursor
cursor = db.cursor()
# 数据列表
data = [
("零基础学pyhton",'Python','79.8'),
("PHP从入门到精通",'PHP','75.6'),
("零基础学JAVA",'Java','69.8'),
]
# 使用预处理语句
sql = "insert into books(name, category, price) values (%s, %s, %s)" % data
# 执行sql命令
cursor.executemany(sql)
# 提交数据
db.commit()
# 关闭数据库连接
db.close()
SQLite
创建数据库和user表
import sqlite3
# 连接到SQLite数据库
# 数据库文件是sqlite.db,若不存在则自动创建
conn = sqlite3.connect('sqlite.db')
# 创建一个Cursor
cursor = conn.cursor()
# 执行一条SQL语句,创建user表
cursor.execute('create table user (id int(10) primary key,name varchar(20))')
# 关闭游标
cursor.close()
# 关闭连接
conn.close()
增加数据
import sqlite3
# 连接SQLite数据库
# 数据库文件是sqlite.db;如果不存在,自动创建
conn = sqlite3.connect('sqlite.db')
# 创建一个Cursor
cursor = conn.cursor()
# 执行一条SQL语句,插入记录
cursor.execute('insert into user (id, name) values ("1", "MRSOFT")')
cursor.execute('insert into user (id, name) values ("2", "Andy")')
cursor.execute('insert into user (id, name) values ("3", "小助手")')
# 关闭游标
cursor.close()
# 提交事务
conn.commit()
# 关闭连接
conn.close()
查看数据
import sqlite3
# 连接SQLite数据库
# 数据库文件是sqlite.db;如果不存在,自动创建
conn = sqlite3.connect('sqlite.db')
# 创建一个Cursor
cursor = conn.cursor()
# 执行一条SQL语句,查询所有数据
cursor.execute('select * from user')
# 获取查询结果
# result1 = cursor.fetchone()
# print(result1) # (1, 'MRSOFT')
# result2 = cursor.fetchmany(2)
# print(result2) # [(1, 'MRSOFT'), (2, 'Andy')]
result3 = cursor.fetchall()
print(result3) # [(1, 'MRSOFT'), (2, 'Andy'), (3, '小助手')]
# 关闭游标
cursor.close()
# 关闭连接
conn.close()
删除数据
import sqlite3
# 连接SQLite数据库
# 数据库文件是sqlite.db;如果不存在,自动创建
conn = sqlite3.connect('sqlite.db')
# 创建一个Cursor
cursor = conn.cursor()
# 执行一条SQL语句,删除一条记录
cursor.execute('delete from USER where id=?',(1,))
# 关闭游标
cursor.close()
# 提交事务
conn.commit()
# 关闭连接
conn.close()
=================================================================================
GUI
wxPython
登陆界面
import wx
class MyFrame(wx.Frame):
def __init__(self, parent, id):
wx.Frame.__init__(self, parent, id, title='创建TextCtrl类')
# 创建面板
panel = wx.Panel(self)
# 创建文本和密码输入框,左对齐
self.title = wx.StaticText(panel, label='请输入用户名和密码')
self.label_user = wx.StaticText(panel, label='用户名')
self.text_user = wx.TextCtrl(panel, style=wx.TE_LEFT)
self.label_pwd = wx.StaticText(panel, label='密 码')
self.text_pwd = wx.TextCtrl(panel, style=wx.TE_PASSWORD)
# 创建确定和取消按钮,并绑定事件
self.bt_confirm = wx.Button(panel, label='确定')
self.bt_confirm.Bind(wx.EVT_BUTTON, self.onClickSubmit)
self.bt_cancel = wx.Button(panel, label='取消')
self.bt_cancel.Bind(wx.EVT_BUTTON, self.onClickCancel)
# 添加容器,容器中控件横向排列
hsizer_user = wx.BoxSizer(wx.HORIZONTAL)
hsizer_user.Add(self.label_user, proportion=0, flag=wx.ALL, border=5)
hsizer_user.Add(self.text_user, proportion=1, flag=wx.ALL, border=5)
hsizer_pwd = wx.BoxSizer(wx.HORIZONTAL)
hsizer_pwd.Add(self.label_pwd, proportion=0, flag=wx.ALL, border=5)
hsizer_pwd.Add(self.text_pwd, proportion=1, flag=wx.ALL, border=5)
hsizer_btn = wx.BoxSizer(wx.HORIZONTAL)
hsizer_btn.Add(self.bt_confirm, proportion=0, flag=wx.ALIGN_CENTER, border=5)
hsizer_btn.Add(self.bt_cancel, proportion=0, flag=wx.ALIGN_CENTER, border=5)
# 添加容器,容器中控件纵向排列
vsier_all = wx.BoxSizer(wx.VERTICAL)
vsier_all.Add(self.title, proportion=0, flag=wx.BOTTOM|wx.TOP|wx.ALIGN_CENTER, border=15)
vsier_all.Add(hsizer_user, proportion=0, flag=wx.EXPAND|wx.LEFT|wx.RIGHT, border=45)
vsier_all.Add(hsizer_pwd, proportion=0, flag=wx.EXPAND|wx.LEFT|wx.RIGHT, border=45)
vsier_all.Add(hsizer_btn, proportion=0, flag=wx.CENTER|wx.TOP, border=15)
panel.SetSizer(vsier_all)
def onClickSubmit(self, event):
"""单击确定按钮触发登陆事件,并给出反馈"""
message = ''
username = self.text_user.GetValue()
password = self.text_pwd.GetValue()
if username == '' or password == '':
message = '用户名或密码不能为空!'
elif username == 'mr' and password == 'mrsoft':
message = '登陆成功!'
else:
message = '用户名和密码不匹配!'
wx.MessageBox(message)
def onClickCancel(self, event):
"""点击取消按钮触发清空操作"""
self.text_user.SetValue('')
self.text_pwd.SetValue('')
if __name__ == '__main__':
app = wx.App()
myframe = MyFrame(parent=None, id=-1)
myframe.Show()
app.MainLoop()
=================================================================================
本文地址:https://blog.csdn.net/weixin_42324313/article/details/107138534
上一篇: mysql中TCL事务控制语言
下一篇: mysql中变量的种类以及定义、赋值