1> 一段时间内只允许调用1次函数
import time
def once_per_period(period):
def decorator(func):
last_called = 0
def wrapper(*args, **kwargs):
nonlocal last_called
now = time.time()
if now - last_called > period:
last_called = now
return func(*args, **kwargs)
return wrapper
return decorator
@once_per_period(60) # 60秒内只能调用一次
def my_func():
print("Hello World")
my_func() # 第一次调用,输出:Hello World
time.sleep(30)
my_func() # 第二次调用,未到间隔时间,不执行任何操作
time.sleep(40)
my_func() # 第三次调用,已过间隔时间,输出:Hello World
2> 批量更改图片格式
图片文件格式 : BMP/ EPS/ GIF/ ICNS/ ICO/ JPEG/ JPEG 2000/ PNG/ TGA/ TIFF/ WebP/ XBM
# pip3 install Pillow==9.5.0
from PIL import Image
import os
input_folder = "E:/Desktop/jpg/"
output_format = ".png"
output_folder = "E:/Desktop/convert/"
for file_name in os.listdir(input_folder):
if file_name.endswith(".jpg") or file_name.endswith(".jpeg") or file_name.endswith(".png"):
image = Image.open(input_folder + file_name)
new_file_name = os.path.splitext(file_name)[0] + output_format
image.save(output_folder + new_file_name, "PNG")
3> 文件批量重命名
import os
def file_rename(path):
file_list = os.listdir(path)
for item in file_list:
file = path + '\\' + item
if os.path.isdir(file):
file_rename(file)
else:
item = item.replace('【','_')
file_new_name = path + '\\' +item
print(file_new_name)
print('='*80)
os.rename(file,file_new_name)
folder = r"E:\Desktop\convert"
file_rename(folder)
4> word文件批量转成pdf
import os
# pip3 install pywin32==306
from win32com import client
# 定义要转换的目录
dir_path = r"E:\Desktop\doc"
# 启动Word应用程序
word = client.DispatchEx("Word.Application")
# 遍历目录下的所有文件
for filename in os.listdir(dir_path):
# 检查文件是否为Word文档
if not filename.endswith(".doc") and not filename.endswith(".docx"):
continue
# 构造完整路径
filepath = os.path.join(dir_path, filename)
# 打开Word文档
doc = word.Documents.Open(filepath)
# 构造PDF文件名
name_num = filename.rfind('.')
pdf_filename = filename[:name_num] + ".pdf"
pdf_filepath = os.path.join(dir_path, pdf_filename)
# 转换为PDF格式并保存,如果是doc转成docx,则FileFormat=16
doc.SaveAs(pdf_filepath, FileFormat=17)
# 关闭Word文档
doc.Close()
# 退出Word应用程序
word.Quit()
5> 多个pdf文件合并操作
import os
# pip3 install PyPDF2==3.0.1
from PyPDF2 import PdfReader, PdfMerger
# 获取要合并的所有PDF文件的路径
pdf_folder = r"E:\Desktop\doc"
pdf_files = [f for f in os.listdir(pdf_folder) if f.endswith('.pdf')]
pdf_files.sort()
# 创建PdfMerger对象并将所有PDF文件合并为单个文件
merger = PdfMerger()
for pdf_file in pdf_files:
with open(os.path.join(pdf_folder, pdf_file), 'rb') as f:
merger.append(PdfReader(f))
with open(r"E:\Desktop\doc\output\merged.pdf", "wb") as out_file:
merger.write(out_file)
6> 将excel中的数据插入sql
import pandas as pd
import pymysql
# 连接 MySQL 数据库
db = pymysql.connect(
host='192.168.3.100',
port=3306,
user='root',
password='admin1234',
db='database'
)
# 读取 Excel 文件
df = pd.read_excel('信息.xlsx', sheet_name='Sheet1', usecols=['单位名称', '单位详细地址'])
# 设置游标
cursor = db.cursor()
# for index, row in df.head(10).iterrows():
for index, row in df.iterrows():
# sql语句
sql = "insert into id(`名称`,`详细地址`) \
values ('%s', '%s');" %(row['单位名称'], row['单位详细地址'])
try:
# 执行 sql 语句
cursor.execute(sql)
# 提交稳定数据
db.commit()
print('第' + str(index+1) + '条数据插入成功')
except:
db.rollback()
print('第' + str(index+1) + '条数据插入失败')
# 关闭数据库连接
db.close()
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END