24级数应二班课堂作业4
2024010047 金佳仪 Excel工资表格合计
import pandas as pd
data = pd.read_excel('C:\\Users\\administrator\\Desktop\\三月工资条.xlsx')
print(data.head())
import pandas as pd
import pandas as pd
data = pd.read_excel('C:\\Users\\administrator\\Desktop\\四月工资条.xlsx')
print(data.head())
import pandas as pd
import pandas as pd
data = pd.read_excel('C:\\Users\\administrator\\Desktop\\工资条合计.xlsx')
print(data.head())
import pandas as pd
def merge_salary_excel(march_file, april_file, output_file):
try:
# 读取三月份工资表格
march_df = pd.read_excel(march_file)
# 读取四月份工资表格
april_df = pd.read_excel(april_file)
# 合并两个DataFrame
combined_df = pd.concat([march_df, april_df], ignore_index=True)
# 将合并后的数据写入新的Excel文件
combined_df.to_excel(output_file, index=False)
print(f"已成功生成合计的工资表格: {output_file}")
except FileNotFoundError as e:
print(f"文件未找到: {e}")
except Exception as e:
print(f"发生错误: {e}")
if __name__ == "__main__":
march_salary_file = '三月工资条.xlsx'
april_salary_file = '四月工资条.xlsx'
output_salary_file = '工资条合计.xlsx'
merge_salary_excel(march_salary_file, april_salary_file, output_salary_file)
2024010052 雷升官 读取西游记文字中人名
import tkinter as tk
def move_image(event):
key = event.keysym
speed = 10
x, y = 0, 0
if key == "Up":
y -= speed
elif key == "Down":
y += speed
elif key == "Left":
x -= speed
elif key == "Right":
x += speed
canvas.move(image_item, x, y)
root = tk.Tk()
root.title("键盘控制图片移动")
# 请将图片替换为你的 GIF 文件路径
img = tk.PhotoImage(file="C:/Users/景勇强/Desktop/新建文件夹/image.gif")
canvas = tk.Canvas(root, width=400, height=400)
canvas.pack()
image_item = canvas.create_image(200, 200, image=img)
root.bind("<Key>", move_image)
root.focus_set() # 确保窗口获得焦点
root.mainloop()
2024010048 景勇强 GIF动画移动
import tkinter as tk
def move_image(event):
key = event.keysym
speed = 10
x, y = 0, 0
if key == "Up":
y -= speed
elif key == "Down":
y += speed
elif key == "Left":
x -= speed
elif key == "Right":
x += speed
canvas.move(image_item, x, y)
root = tk.Tk()
root.title("键盘控制图片移动")
# 请将图片替换为你的 GIF 文件路径
img = tk.PhotoImage(file="C:/Users/景勇强/Desktop/新建文件夹/image.gif")
canvas = tk.Canvas(root, width=400, height=400)
canvas.pack()
image_item = canvas.create_image(200, 200, image=img)
root.bind("<Key>", move_image)
root.focus_set() # 确保窗口获得焦点
root.mainloop()
2024010077 马京兴 excel 出勤统计
import pandas as pd
import os
# 配置文件路径
EXCEL_FILE = "attendance.xlsx"
def init_excel():
"""初始化Excel文件(如果不存在)"""
if not os.path.exists(EXCEL_FILE):
# 创建最简单的表结构
df = pd.DataFrame(columns=["日期", "姓名", "出勤状态"])
df.to_excel(EXCEL_FILE, index=False)
print(f"已创建空白出勤表: {EXCEL_FILE}")
def show_raw_data():
"""直接打印Excel原始内容"""
try:
df = pd.read_excel(EXCEL_FILE)
print("\n=== 当前出勤数据 ===")
print(df.to_string(index=False)) # 不显示行索引
except Exception as e:
print(f"读取失败: {e}")
if __name__ == "__main__":
init_excel()
show_raw_data()
2024010050 康佳莹 excel工资表格合计
import pandas as pd
data = pd.read_excel('C:\\Users\\administrator\\Desktop\\三月工资条.xlsx')
print(data.head())
import pandas as pd
import pandas as pd
data = pd.read_excel('C:\\Users\\administrator\\Desktop\\四月工资条.xlsx')
print(data.head())
import pandas as pd
import pandas as pd
data = pd.read_excel('C:\\Users\\administrator\\Desktop\\工资条合计.xlsx')
print(data.head())
import pandas as pd
def merge_salary_excel(march_file, april_file, output_file):
try:
# 读取三月份工资表格
march_df = pd.read_excel(march_file)
# 读取四月份工资表格
april_df = pd.read_excel(april_file)
# 合并两个DataFrame
combined_df = pd.concat([march_df, april_df], ignore_index=True)
# 将合并后的数据写入新的Excel文件
combined_df.to_excel(output_file, index=False)
print(f"已成功生成合计的工资表格: {output_file}")
except FileNotFoundError as e:
print(f"文件未找到: {e}")
except Exception as e:
print(f"发生错误: {e}")
if __name__ == "__main__":
march_salary_file = '三月工资条.xlsx'
april_salary_file = '四月工资条.xlsx'
output_salary_file = '工资条合计.xlsx'
merge_salary_excel(march_salary_file, april_salary_file, output_salary_file)
2024010057 李楠 文件夹中含有a字符的文件移动到另一文件夹中
#导入工具包
import os#文件路径操作
import shutil#文件移动'操作
#定义移动函数
def move_files_with_a(source_folder, target_folder):
"""
将包含字母'a'的文件从源文件夹移动到目标文件夹
参数:
source_folder (str): 源文件夹路径
target_folder (str): 目标文件夹路径
"""
# 确保目标文件夹存在
if not os.path.exists(target_folder):
os.makedirs(target_folder)
# 遍历源文件夹中的所有文件
for filename in os.listdir(source_folder):
# 检查文件名中是否包含'a'(不区分大小写)
if 'a' in filename.lower():
source_path = os.path.join(source_folder, filename)
target_path = os.path.join(target_folder, filename)
# 移动文件
shutil.move(source_path, target_path)
print(f"已移动: {filename}")
if __name__ == "__main__":
# 设置文件夹路径 - 请根据实际情况修改
source_dir = "原文件夹路径" # 替换为你的源文件夹路径
target_dir = "目标文件夹路径" # 替换为你的目标文件夹路径
# 执行移动操作
move_files_with_a(source_dir, target_dir)
print("文件移动完成!")
2024010059 李若楠 框选车牌
import cv2
import easyocr
image_path = r"D:\111\car.jpg"
image = cv2.imread(image_path)
reader = easyocr.Reader(['ch_sim', 'en'])
results = reader.readtext(image)
for (bbox, text, confidence) in results:
if len(text) >= 5 and confidence > 0.5:
(top_left, top_right, bottom_right, bottom_left) = bbox
top_left = tuple(map(int, top_left))
bottom_right = tuple(map(int, bottom_right))
cv2.rectangle(image, top_left, bottom_right, (0, 255, 0), 2)
cv2.putText(image, text, (top_left[0], top_left[1] - 10),
cv2.FONT_HERSHEY_SIMPLEX, 0.8, (0, 255, 0), 2)
print(f"检测到车牌:{text},置信度:{confidence:.2f}")
cv2.imshow("Detected License Plate", image)
cv2.waitKey(0)
cv2.destroyAllWindows()
2024010062 廖佳怡 统计出勤人数
import pandas as pd
# 读取Excel文件,指定桌面路径下的点名表.xlsx ,注意路径中的反斜杠需转义
df = pd.read_excel('点名表.xlsx')
print(df)
# # 假设出勤情况在名为'出勤'的列中,根据实际列名修改
attendance_column = '出勤情况'
# # 统计出勤人数,假设出勤标记为'出勤'
attendance_count = (df[attendance_column] == '出勤').sum()
print(f"出勤人数为:{attendance_count}")
2024010064 刘纯怡 将图片滚动
import tkinter as tk
from tkinter import PhotoImage, Canvas, Scrollbar, Tk
# 创建主窗口
root = Tk()
root.title("图片滚动示例")
try:
# 加载图片
photo = PhotoImage(file="D:/images/page.gif") # 替换为你的图片路径
except tk.TclError:
print("无法打开图片文件。请确保图片格式为GIF、PPM或PNG。")
exit()
# 创建Canvas并设置滚动区域
canvas = Canvas(root, width=600, height=400, scrollregion=(0, 0, photo.width(), photo.height()))
canvas.pack(fill=tk.BOTH, expand=True)
# 在Canvas上创建图片
canvas.create_image(0, 0, anchor='nw', image=photo)
# 创建水平滚动条
h_scroll = Scrollbar(root, orient=tk.HORIZONTAL, command=canvas.xview)
h_scroll.pack(fill=tk.X)
# 配置Canvas的滚动条
canvas.config(xscrollcommand=h_scroll.set)
# 运行主循环
root.mainloop()
2024010068 刘晓津 将文档更改
from docx import Document
from docx.shared import RGBColor
def change_red_to_blue(docx_path):
document = Document(docx_path)
for paragraph in document.paragraphs:
for run in paragraph.runs:
if run.font.color:
if run.font.color.rgb == RGBColor(255, 0, 0): # 红色的 RGB 值
run.font.color.rgb = RGBColor(0, 0, 255) # 蓝色的 RGB 值
document.save(docx_path)
# 使用示例
docx_path = '123.docx' # 替换为你的实际文档路径
change_red_to_blue(docx_path)
2024010080 毛蕊婷 excel表格联动
import pandas as pd
from openpyxl import load_workbook
# 创建基础数据表(职位工资表)
positions_df = pd.DataFrame({
'职位': ['经理', '工程师', '会计'],
'工资': [50000, 40000, 35000]
})
# 创建员工信息表(仅包含姓名和职位)
employees_df = pd.DataFrame({
'姓名': ['张三', '李四', '王五'],
'职位': ['经理', '工程师', '会计']
})
# 生成Excel文件(第一次生成)
with pd.ExcelWriter('联动表格.xlsx', engine='openpyxl') as writer:
positions_df.to_excel(writer, sheet_name='职位工资表', index=False)
employees_df.to_excel(writer, sheet_name='员工信息表', index=False)
# 使用openpyxl添加公式
wb = load_workbook('联动表格.xlsx')
ws_employee = wb['员工信息表']
# 在员工信息表中插入工资列
ws_employee.insert_cols(3) # 在C列插入新列
ws_employee['C1'] = '工资'
# 为每个员工添加VLOOKUP公式
for row in range(2, ws_employee.max_row + 1):
formula = f'=VLOOKUP(B{row}, 职位工资表!A:B, 2, FALSE)'
ws_employee[f'C{row}'] = formula
wb.save('联动表格.xlsx')
print("Excel文件已生成,文件名为:联动表格.xlsx")
2024010075鲁美宏将一个文件夹里的文件大小排序后将其写入txt文件夹里
import os
def generate_file_report():
# 源文件夹路径(直接使用用户提供的路径)
source_dir = r"C:\Users\鲁美宏\Desktop\新建文件夹"
# 输出文件夹路径(独立指定)
output_dir = r"C:\Users\鲁美宏\Desktop\Txt"
try:
# 创建输出目录(自动处理已存在的情况)
os.makedirs(output_dir, exist_ok=True)
# 获取文件列表并排序
files = []
with os.scandir(source_dir) as entries:
for entry in entries:
if entry.is_file():
size = entry.stat().st_size
files.append((entry.name, size))
# 按文件大小降序排序
sorted_files = sorted(files, key=lambda x: x[1], reverse=True)
# 生成报告文件
report_path = os.path.join(output_dir, "文件大小报告.txt")
with open(report_path, "w", encoding="utf-8") as f:
# 写入带中文标题的表格头
f.write(f"{'文件名':<40}{'大小(字节)':>20}\n")
f.write("-" * 60 + "\n")
# 写入格式化数据行
for name, size in sorted_files:
# 使用千位分隔符并保持列对齐
f.write(f"{name:<40}{size:>20,}\n")
print(f"报告已生成至:{report_path}")
print(f"共处理 {len(sorted_files)} 个文件")
except FileNotFoundError:
print(f"错误:源文件夹不存在 - {source_dir}")
except PermissionError:
print(f"错误:没有访问权限 - {source_dir}")
except Exception as e:
print(f"发生未知错误:{str(e)}")
if __name__ == "__main__":
generate_file_report()