使用Python读取Excel表格列,并生成新的一列8位hash值

运维有笔谈 2024-09-10 04:01:11

前天准备休息了,忽然一个朋友过来询问能不能帮他一个小忙。他那边有一个需求:一张Excel表格,第一列是各个学校的名字,第二列是密码,他们希望根据第一列学校的名字随机来生成一个hash值来填充第二列的密码,并且要求是随机的8位数。他觉得一个个来生成太麻烦了,问我能不能帮他用Python批量处理下。

我想了想,要使用Python批量处理Excel,我们可以使用pandas和openpyxl库。Pandas可以处理各种格式的数据,包括CSV、TXT等,但默认读写Excel文件需要额外的支持。Openpyxl是一个Python库,用于读取和写入Excel xlsx之类的文件。当我们使用Pandas来读写Excel (.xlsx) 文件时,Openpyxl是一个常用的后端引擎。

1.我们先安装下pandas和openpyxl

pip install pandas openpyxl

2.写一个简单的Python脚本处理:

这是一个简单实现示例,大家参考下,抛砖引玉。

import pandas as pdimport hashlibdef generate_8_digit_school_name(school_name): # 使用SHA-256哈希算法 hash_object = hashlib.sha256(school_name.encode()) hash_hex = hash_object.hexdigest() # 将哈希值转换为一个整数 hash_int = int(hash_hex, 16) # 通过模运算获取8位数字 eight_digit_number = hash_int % 100000000 # 格式化为8位数字,不足8位前面补0 eight_digit_number_formatted = str(eight_digit_number).zfill(8) return eight_digit_number_formatted# 读取Excel文件df = pd.read_excel('学校信息.xlsx') # 假设Excel文件名为'学校信息.xlsx'# 检查'学校'列是否存在if '学校' in df.columns: # 应用函数生成8位数字哈希值,并覆盖或新增为'密码'列 df['密码'] = df['学校'].apply(generate_8_digit_school_name)else: print("错误:Excel文件中未找到'学校'列。")# 输出到新的Excel文件df.to_excel('学校及8位密码哈希值.xlsx', index=False) # 新文件名为'学校及8位密码哈希值.xlsx'print("处理完成,8位密码哈希值已保存至新Excel文件。")

0 阅读:13

运维有笔谈

简介:感谢大家的关注