Skip to content
Battlemagnet1Public

About

身份证号码信息解析器,一个基于Python Tkinter的图形界面应用程序,用于解析中国身份证号码并提取相关信息。

Resources

Stars

3 stars

Watchers

0 watching

Forks

Latest commit

 

History

3 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 

Repository files navigation

身份证号码信息解析器 (SFZ_GUI.py)

一个基于Python Tkinter的图形界面应用程序,用于解析中国身份证号码并提取相关信息。

功能特点

  • ✅ 身份证号码验证:支持15位和18位身份证号码格式验证
  • ✅ 地区信息解析:根据身份证前6位代码解析所在地区
  • ✅ 生日信息提取:提取出生日期并自动计算年龄
  • ✅ 性别识别:根据身份证号码识别性别
  • ✅ 校验码验证:对18位身份证号码进行校验码验证
  • ✅ 用户友好界面:现代化的图形界面设计
  • ✅ 错误处理:完善的输入验证和错误提示

技术栈

  • 编程语言:Python 3
  • GUI框架:Tkinter (内置Python GUI库)
  • 界面组件:ttk (Tkinter主题组件)
  • 数据处理:正则表达式、日期时间计算

安装和使用

系统要求

  • Python 3.6 或更高版本
  • Windows/Linux/macOS 操作系统

运行程序

# 直接运行Python文件
python SFZ_GUI.py

使用步骤

  1. 在输入框中输入身份证号码(15位或18位)
  2. 点击"解析身份证"按钮或按回车键
  3. 查看右侧文本框中的解析结果

程序架构

主要类说明

IDCardManager 类

负责身份证号码的核心解析逻辑:

  • validate_id_card() - 验证身份证号码格式
  • get_area_info() - 获取地区信息
  • get_birthday() - 获取生日信息和年龄
  • get_gender() - 获取性别信息
  • parse_id_card() - 综合解析身份证号码

IDCardGUI 类

负责图形界面的构建和交互:

  • setup_styles() - 配置界面样式
  • create_widgets() - 创建界面组件
  • format_output() - 格式化输出结果
  • parse_id_card() - 处理解析请求
  • clear_all() - 清空输入和结果

数据源

程序内置完整的中国行政区划代码数据库,包含:

  • 34个省级行政区
  • 333个地级行政区
  • 2844个县级行政区

校验算法

18位身份证校验码计算

采用ISO 7064:1983.MOD 11-2标准:

  1. 前17位数字分别乘以权重系数:[7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2]
  2. 将乘积求和
  3. 用和数除以11得到余数
  4. 根据余数对应校验码:['1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2']

界面功能

主要控件

  • 输入框:用于输入身份证号码
  • 解析按钮:触发身份证解析
  • 清空按钮:清除所有输入和结果
  • 退出按钮:关闭应用程序
  • 结果显示框:显示格式化解析结果

界面特色

  • 现代化蓝色主题设计
  • 响应式布局
  • 键盘快捷键支持(回车键解析)
  • 滚动条支持长文本显示

错误处理

程序能够检测和处理以下错误情况:

  • 身份证号码长度错误
  • 格式不正确(包含非数字字符)
  • 校验码错误
  • 无效的出生日期
  • 未知的地区代码

扩展功能

可扩展性

程序采用模块化设计,易于扩展:

  • 添加新的地区代码
  • 增加批量处理功能
  • 集成数据库存储
  • 添加导出功能

许可证

本项目采用开源许可证,具体信息请查看LICENSE文件。

贡献

欢迎提交Issue和Pull Request来改进这个项目。

联系方式

如有问题或建议,请通过以下方式联系:

  • 提交GitHub Issue
  • 发送电子邮件

注意:本程序仅用于学习和研究目的,请遵守相关法律法规,尊重个人隐私。

About

身份证号码信息解析器,一个基于Python Tkinter的图形界面应用程序,用于解析中国身份证号码并提取相关信息。

Resources

Stars

3 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages