Deprecated: imwpcache\f884414bce24ee67f\f73723ec7b1919fa5::__construct(): Implicitly marking parameter $YECBGYFECGEAFWHA as nullable is deprecated, the explicit nullable type must be used instead in /www/wwwroot/www.chuangxiangniao.com/wp-content/plugins/imwpcache-dist/build/f884414bce24ee67ff73723ec7b1919fa5.php on line 2

Deprecated: imwpcache\f884414bce24ee67f\f73723ec7b1919fa5::__construct(): Implicitly marking parameter $BBWFDDBHHYHDXXAB as nullable is deprecated, the explicit nullable type must be used instead in /www/wwwroot/www.chuangxiangniao.com/wp-content/plugins/imwpcache-dist/build/f884414bce24ee67ff73723ec7b1919fa5.php on line 2
使用Python将文本文件中的数值数据高效写入Excel并确保数据类型正确_创想鸟

使用Python将文本文件中的数值数据高效写入Excel并确保数据类型正确

使用python将文本文件中的数值数据高效写入excel并确保数据类型正确

本教程详细介绍了如何使用Python读取TXT文件中的数据,将其转换为适当的整数类型,并写入Excel文件。核心内容包括利用openpyxl库处理Excel,通过条件判断isdigit()在数据写入阶段确保数值类型正确性,以及计算并添加平均值列,最终生成结构清晰、数据类型准确的Excel报告。

在数据处理和报告生成的场景中,我们经常需要将原始文本数据导入到更结构化的格式,如Excel,以便于进一步分析和展示。本教程将引导您完成一个典型的任务:从TXT文件中读取学生成绩数据,将其写入Excel表格,并确保所有数值数据都被正确识别为整数类型,同时计算每行成绩的平均值。

1. 环境准备与库安装

要处理Excel文件,我们需要使用openpyxl库。如果您尚未安装,可以通过以下命令进行安装:

pip install openpyxl

2. 准备源数据文件

假设我们有一个名为AI.txt的文本文件,其中包含学生的分数数据。文件内容示例如下(每行代表一个学生的两次考试成绩):

Student1 85 90Student2 78 88Student3 92 95Student4 60 70Student5 80 85Student6 75 82

请注意,实际文件可能只包含数字,或者像示例一样包含非数字的标识符(如学生姓名)。本教程将展示如何灵活处理这两种情况。

立即学习“Python免费学习笔记(深入)”;

3. Python程序实现

以下是实现上述功能的完整Python程序代码:

import openpyxldef process_scores_to_excel(txt_file_path, excel_file_path, sheet_name="qq"):    """    读取TXT文件中的学生成绩数据,将其转换为整数类型并写入Excel文件,    同时计算并添加平均值列。    Args:        txt_file_path (str): 输入的TXT文件路径。        excel_file_path (str): 输出的Excel文件路径。        sheet_name (str): Excel工作表的名称。    """    try:        # 1. 读取TXT文件内容        with open(txt_file_path, 'r', encoding='utf-8') as file:            lines = file.readlines()        # 2. 创建一个新的Excel工作簿和工作表        workbook = openpyxl.Workbook()        # 创建一个名为 'qq' 的工作表,并将其设置为第一个工作表        sheet = workbook.create_sheet(index=0, title=sheet_name)        # 3. 逐行处理数据并写入Excel        # 假设第一行可能是标题,但原始数据没有明确标题,我们直接处理数据        # 如果TXT文件有标题行,需要额外处理        # 添加一个示例标题行(可选,根据实际需求调整)        sheet.append(["Student ID", "Exam 1 Score", "Exam 2 Score"])         for line in lines:            # 移除行首尾空白字符,并按空格分割成列表            cur_data = line.strip().split()            # 使用列表推导式进行条件转换:            # 如果元素是数字,则转换为整数;否则保留原始字符串。            # 这种方式确保了即使TXT文件中包含非数字(如学生姓名),也能正确处理。            processed_row = [int(item) if item.isdigit() else item for item in cur_data]            # 将处理后的行数据追加到Excel工作表            sheet.append(processed_row)        # 4. 计算并添加平均值列        # 首先为平均值列添加标题        # 假设数据从第2行开始(第1行是标题),数据有3列(ID, Exam1, Exam2)        # 平均值将添加到第4列        sheet.cell(row=1, column=4, value="Mean Score")        # 遍历从第2行开始的所有数据行,计算平均值        # max_col 需要根据实际数据列数调整。        # 如果数据只有两列分数,max_col=3(ID, Score1, Score2),平均值在第4列        # 如果数据没有ID,只有两列分数,max_col=2,平均值在第3列        # 这里假设数据是 "ID Score1 Score2",所以数据列是3列,平均值在第4列        for row_index in range(2, sheet.max_row + 1): # 从第二行开始遍历            # 获取当前行中所有单元格的值            current_row_values = [sheet.cell(row=row_index, column=col).value                                   for col in range(2, sheet.max_column + 1)] # 从第二列开始获取数值            # 筛选出数值类型(整数或浮点数)进行平均值计算            numeric_values = [val for val in current_row_values if isinstance(val, (int, float))]            if numeric_values: # 确保有数值可供计算                avg_value = sum(numeric_values) / len(numeric_values)                # 将平均值写入到当前行的第四列                sheet.cell(row=row_index, column=4, value=avg_value)            else:                sheet.cell(row=row_index, column=4, value="N/A") # 如果没有数值,则显示N/A        # 5. 保存Excel文件        workbook.save(excel_file_path)        print(f"数据已成功写入 '{excel_file_path}'。")    except FileNotFoundError:        print(f"错误:文件 '{txt_file_path}' 未找到。")    except Exception as e:        print(f"发生错误:{e}")# 调用函数执行程序if __name__ == "__main__":    txt_file = 'AI.txt'    excel_file = 'AI56.xlsx'    process_scores_to_excel(txt_file, excel_file)

4. 关键代码解析与注意事项

读取TXT文件:

with open(txt_file_path, 'r', encoding='utf-8') as file:    lines = file.readlines()

使用with语句确保文件被正确关闭。readlines()将文件所有行读取到一个列表中。encoding=’utf-8’是处理多种字符编码的良好实践。

创建Excel工作簿和工作表:

workbook = openpyxl.Workbook()sheet = workbook.create_sheet(index=0, title=sheet_name)

openpyxl.Workbook()创建一个新的Excel文件。create_sheet(index=0, title=’qq’)创建名为”qq”的工作表并将其置于第一个位置。

数据类型转换的核心:

processed_row = [int(item) if item.isdigit() else item for item in cur_data]sheet.append(processed_row)

这是解决原始问题(Excel中数值仍显示为文本)的关键。

line.strip().split():清理每行数据,将其分割成字符串列表。[int(item) if item.isdigit() else item for item in cur_data]:这是一个列表推导式,它遍历cur_data中的每个元素item。item.isdigit():检查item是否只包含数字字符。这个方法对于判断字符串是否可以安全地转换为整数非常有效。如果item.isdigit()为真,则将其转换为整数int(item)。否则(例如,如果item是学生姓名或包含非数字字符),则保留其原始字符串形式item。sheet.append(processed_row):openpyxl在append列表时,会自动根据Python的数据类型识别并写入Excel。通过这种预处理,int类型的数值会直接作为Excel的数字类型写入,而不是文本。

计算平均值:

# 添加平均值列标题sheet.cell(row=1, column=4, value="Mean Score")for row_index in range(2, sheet.max_row + 1):    current_row_values = [sheet.cell(row=row_index, column=col).value                           for col in range(2, sheet.max_column + 1)] # 假设数据从第2列开始    numeric_values = [val for val in current_row_values if isinstance(val, (int, float))]    if numeric_values:        avg_value = sum(numeric_values) / len(numeric_values)        sheet.cell(row=row_index, column=4, value=avg_value)

sheet.cell(row=R, column=C, value=V)用于向指定单元格写入值。sheet.max_row和sheet.max_column获取当前工作表的最大行号和列号。isinstance(val, (int, float)):在计算平均值之前,我们再次筛选确保只对数值类型(整数或浮点数)进行计算,避免因非数值数据导致错误。

保存Excel文件:

workbook.save(excel_file_path)

将修改后的工作簿保存到指定的文件路径。

5. 总结

通过本教程,您学会了如何使用Python和openpyxl库将文本文件中的数据导入到Excel,并解决了数据类型转换的关键问题。核心在于在将数据追加到Excel之前,利用isdigit()方法对每个数据项进行条件判断和类型转换。这种方法确保了Excel文件中的数值数据能够被正确识别和处理,为后续的数据分析奠定了坚实基础。同时,我们也学习了如何计算并添加新的派生列(如平均值),使生成的Excel报告更加完整和有用。

以上就是使用Python将文本文件中的数值数据高效写入Excel并确保数据类型正确的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1369507.html

赞 (0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
Python中安全地将字符串切片转换为整数的策略
上一篇 2025年12月14日 09:43:38
Python中基于多条件筛选和提取元组数据教程
下一篇 2025年12月14日 09:43:56

相关推荐

  • Java中实现跨类和函数共享变量的指南

    Java中实现跨类和函数共享变量的指南Java中实现跨类和函数共享变量的指南Java中实现跨类和函数共享变量的指南Java中实现跨类和函数共享变量的指南

    本教程将详细介绍在Java中如何创建可在所有类和函数中访问的共享变量。通过利用public static关键字,我们可以定义类级别的变量,实现全局共享状态。文章将提供声明、访问示例,并讨论使用此类变量时的最佳实践和注意事项,确保代码的可维护性和健壮性。 理解共享变量的需求 在java应用程序开发中,…

    2026年9月24日 • 用户投稿
    100
  • Ubuntu挂载网络共享

    在ubuntu中挂载网络共享有多种方法,以下是其中两种常用的方法: 方法一:使用mount命令 安装必要的软件包:如果你还没有安装cifs-utils(用于CIFS/SMB协议),可以使用以下命令安装: sudo apt updatesudo apt install cifs-utils 创建挂载点…

    2026年9月24日
    000
  • Java中实现州府问答系统:2D数组管理、排序与用户输入验证

    Java中实现州府问答系统:2D数组管理、排序与用户输入验证Java中实现州府问答系统:2D数组管理、排序与用户输入验证Java中实现州府问答系统:2D数组管理、排序与用户输入验证Java中实现州府问答系统:2D数组管理、排序与用户输入验证

    本教程详细介绍了如何使用Java构建一个州府问答系统。内容涵盖了使用二维数组存储州名及其首都数据、实现冒泡排序对数据按首都名称进行排序、以及如何通过用户输入验证机制,处理大小写不敏感的答案,并最终统计正确率。文章提供了完整的代码示例和关键注意事项,帮助读者理解并实现类似的数据结构与算法应用。 1. …

    2026年9月24日 • 用户投稿
    100
  • sublime如何配置使其支持EditorConfig _sublime EditorConfig支持配置

    sublime如何配置使其支持EditorConfig _sublime EditorConfig支持配置sublime如何配置使其支持EditorConfig _sublime EditorConfig支持配置sublime如何配置使其支持EditorConfig _sublime EditorConfig支持配置sublime如何配置使其支持EditorConfig _sublime EditorConfig支持配置

    首先安装Package Control,再通过命令面板安装EditorConfig插件,确保项目根目录有.editorconfig文件,重启后即可自动应用格式规则。 Sublime Text 本身不内置支持 EditorConfig,但可以通过安装插件来实现对 .editorconfig 文件的识别…

    2026年9月24日 • 用户投稿
    100
  • 《明末:渊虚之羽》1.5版本更新今日登陆主机!详情待公布!

    《明末:渊虚之羽》1.5版本更新今日登陆主机!详情待公布!《明末:渊虚之羽》1.5版本更新今日登陆主机!详情待公布!《明末:渊虚之羽》1.5版本更新今日登陆主机!详情待公布!《明末:渊虚之羽》1.5版本更新今日登陆主机!详情待公布!

    今日,国产类魂游戏《明末:渊虚之羽》官方通过社交平台x宣布,1.5版本更新即将上线主机平台。 官方在推文中指出:“1.5版本补丁将于8月14日正式登陆Xbox Series X|S与PlayStation 5平台!更多详细信息将陆续公开,请持续关注。” 此前,该版本已率先在PC平台推出,主要内容更新…

    2026年9月24日 • 用户投稿
    000
  • 使用 Rest Assured 创建泛型 JSONPath 值提取函数

    使用 Rest Assured 创建泛型 JSONPath 值提取函数使用 Rest Assured 创建泛型 JSONPath 值提取函数使用 Rest Assured 创建泛型 JSONPath 值提取函数使用 Rest Assured 创建泛型 JSONPath 值提取函数

    本文探讨如何在 Rest Assured 中设计一个泛型工具函数,以实现类型安全的 JSONPath 值提取。针对直接使用 T.class 导致的编译错误,文章提供了通过将 Class 作为参数传入的解决方案,有效规避了 Java 泛型擦除问题,从而实现灵活、可复用的 JSON 数据解析。 泛型 J…

    2026年9月24日 • 用户投稿
    000
  • 怎么用豆包AI分析Python内存使用 AI辅助定位内存泄漏的实用方法

    怎么用豆包AI分析Python内存使用 AI辅助定位内存泄漏的实用方法怎么用豆包AI分析Python内存使用 AI辅助定位内存泄漏的实用方法怎么用豆包AI分析Python内存使用 AI辅助定位内存泄漏的实用方法怎么用豆包AI分析Python内存使用 AI辅助定位内存泄漏的实用方法

    python内存泄漏可通过tracemalloc、objgraph及代码分析定位。1. 使用tracemalloc模块记录内存分配堆栈,生成快照并输出统计结果,交由豆包ai分析可疑内存泄漏点;2. 用objgraph查看常见对象类型及增长趋势,若发现异常增长对象可交由豆包判断是否合理;3. 将疑似泄…

    2026年9月24日 • 用户投稿
    000
  • 抖音双11好物节有哪些优惠活动?双11抖音有什么活动

    抖音双11好物节有哪些优惠活动?双11抖音有什么活动抖音双11好物节有哪些优惠活动?双11抖音有什么活动抖音双11好物节有哪些优惠活动?双11抖音有什么活动抖音双11好物节有哪些优惠活动?双11抖音有什么活动

    一年一度的双11购物狂欢节即将来临,抖音平台也紧跟潮流,推出了抖音双11好物节活动。这次活动可谓是优惠满满,好物多多,让广大消费者在购物的同时,也能享受购物的乐趣。下面,就让我为大家详细介绍一下2025年抖音双11好物节的优惠活动吧! 一、抖音双11好物节活动时间 活动周期:2025年9月16日(中…

    2026年9月24日 • 用户投稿
    000
  • 如何验证厂商宣传的散热技术是否切实有效?

    如何验证厂商宣传的散热技术是否切实有效?如何验证厂商宣传的散热技术是否切实有效?如何验证厂商宣传的散热技术是否切实有效?如何验证厂商宣传的散热技术是否切实有效?

    要验证散热技术是否有效,需结合产品规格、第三方评测、用户反馈及自行测试。首先查看热管数量与材质、均热板设计、风扇风量与静压等真实参数,警惕模糊宣传;其次参考专业媒体在标准环境下的烤机测试数据,如AIDA64或FurMark负载下的温度与频率表现;再通过电商平台或论坛收集长期使用反馈,关注共性问题如噪…

    2026年9月24日 • 用户投稿
    000
  • 抖音账号无故被封禁该如何解决?封禁是否因他人举报而起?详解抖音账号封禁原因!

    抖音账号无故被封禁该如何解决?封禁是否因他人举报而起?详解抖音账号封禁原因!抖音账号无故被封禁该如何解决?封禁是否因他人举报而起?详解抖音账号封禁原因!抖音账号无故被封禁该如何解决?封禁是否因他人举报而起?详解抖音账号封禁原因!抖音账号无故被封禁该如何解决?封禁是否因他人举报而起?详解抖音账号封禁原因!

    一、抖音账号被封的常见原因 (一)是否因他人举报导致封号? 1. 一次举报会怎样?当一个抖音账号被用户举报时,平台通常不会立即采取严厉措施。首次举报多数情况下只会触发系统警告。例如,若发布的视频涉及轻微版权问题或存在争议性言论,虽未明显违规,但经他人举报后,可能会收到平台提醒。2. 多次举报的严重后…

    2026年9月24日 • 用户投稿
    200
  • 如何用豆包 AI 大模型与 AI 聚会游戏设计工具结合,活跃聚会氛围?​

    如何用豆包 AI 大模型与 AI 聚会游戏设计工具结合,活跃聚会氛围?​如何用豆包 AI 大模型与 AI 聚会游戏设计工具结合,活跃聚会氛围?​如何用豆包 AI 大模型与 AI 聚会游戏设计工具结合,活跃聚会氛围?​如何用豆包 AI 大模型与 AI 聚会游戏设计工具结合,活跃聚会氛围?​

    豆包 ai 大模型与 ai 聚会游戏设计工具结合,能有效提升聚会互动性和趣味性。1. 可用豆包 ai 生成个性化问题或话题,如搞笑类、回忆类等,帮助破冰交流;2. 结合聚会游戏工具,利用 ai 生成的关键词或背景设定定制专属小游戏,增强即兴互动;3. 借 ai 生成角色设定和剧情线索,营造角色扮演氛…

    2026年9月24日 • 用户投稿
    100
  • sublime如何格式化sql语句 _sublime SQL格式化方法

    sublime如何格式化sql语句 _sublime SQL格式化方法sublime如何格式化sql语句 _sublime SQL格式化方法sublime如何格式化sql语句 _sublime SQL格式化方法sublime如何格式化sql语句 _sublime SQL格式化方法

    使用插件实现Sublime Text格式化SQL。1. 安装Package Control:通过控制台执行代码安装插件管理工具;2. 安装SQLPrettyPrinter:通过命令面板搜索并安装,选中SQL语句后运行“SQL Pretty Print”命令格式化;3. 高级用户可结合Python的s…

    2026年9月24日 • 用户投稿
    100
  • mysql数据库中的自增列如何使用

    自增列是MySQL中用于自动产生唯一数值的整数列,通常作为主键使用。通过AUTO_INCREMENT属性,插入数据时若未指定值,系统会自动分配比当前最大值大1的数值,确保每条记录拥有唯一标识,简化插入操作。创建表时可定义自增列,如:CREATE TABLE users (id INT AUTO_IN…

    2026年9月24日
    100
  • 如何高效管理Debian文件系统

    高效管理debian文件系统可以通过以下几个步骤来实现: 了解文件系统结构: Debian文件系统遵循标准的Linux文件系统层次结构,例如/bin, /etc, /home, /usr, /var等。熟悉这些目录的作用,有助于更好地组织和管理文件。 磁盘空间管理: 使用df -h命令查看磁盘空间使…

    2026年9月24日
    000
  • 高效集成SOAP服务:Spring Boot中WSDL转Java的实践与策略

    高效集成SOAP服务:Spring Boot中WSDL转Java的实践与策略高效集成SOAP服务:Spring Boot中WSDL转Java的实践与策略高效集成SOAP服务:Spring Boot中WSDL转Java的实践与策略高效集成SOAP服务:Spring Boot中WSDL转Java的实践与策略

    本教程旨在指导开发者如何在Spring Boot项目中将WSDL(Web Services Description Language)文件转换为Java类,并成功消费SOAP(Simple Object Access Protocol)Web服务。文章将探讨常见的转换挑战,如wsimport兼容性问…

    2026年9月24日 • 用户投稿
    100
  • 怎样让 AI 家居设计工具与豆包配合打造理想家居?实用教程​

    怎样让 AI 家居设计工具与豆包配合打造理想家居?实用教程​怎样让 AI 家居设计工具与豆包配合打造理想家居?实用教程​怎样让 AI 家居设计工具与豆包配合打造理想家居?实用教程​怎样让 AI 家居设计工具与豆包配合打造理想家居?实用教程​

    使用ai家居设计工具与豆包配合能提升家装效率,具体步骤如下:1. 利用ai工具生成设计方案,上传户型图并设定风格偏好,快速获取多个装修效果图;2. 将ai输出结果整理至豆包,为每个房间建立页面,添加说明、表格及标签以便查阅;3. 结合豆包优化预算和采购计划,记录材料价格并比对市场价,设置提醒避免遗漏…

    2026年9月24日 • 用户投稿
    100
  • Debian下GitLab的版本控制策略有哪些

    在debian下搭建和使用gitlab时,可以遵循以下版本控制策略: 服务器配置 选择合适的云服务器配置:根据团队规模和CI/CD需求选择合适的服务器配置。例如,2C8G的服务器适合没有CI/CD需求的小团队,而4C16G+的服务器则适合需求更高的场景。 安装和配置GitLab 安装依赖:安装必要的…

    2026年9月24日
    100
  • Java中自定义与内置类同名冲突的解决方案:精确导入的实践

    Java中自定义与内置类同名冲突的解决方案:精确导入的实践Java中自定义与内置类同名冲突的解决方案:精确导入的实践Java中自定义与内置类同名冲突的解决方案:精确导入的实践Java中自定义与内置类同名冲突的解决方案:精确导入的实践

    本文探讨了Java中自定义类与内置类(如LinkedList)同名时引发的编译错误。当项目中同时存在自定义LinkedList和java.util.LinkedList时,程序可能错误地引用自定义实现,导致方法找不到。教程指出,通过精确导入java.util.LinkedList而非通配符java.…

    2026年9月24日 • 用户投稿
    200
  • fmhy官网安全访问_fmhy中文版官网入口

    fmhy官网安全访问_fmhy中文版官网入口fmhy官网安全访问_fmhy中文版官网入口fmhy官网安全访问_fmhy中文版官网入口fmhy官网安全访问_fmhy中文版官网入口

    Fmhy中文版官网入口为https://fmhy.net/,平台提供影视、动漫、音乐、游戏、软件及教育等资源分类,支持多语言浏览并推荐使用FMHY SafeGuard插件保障安全,所有内容由全球志愿者通过GitHub协作维护,用户可通过Discord参与更新与反馈,确保资源链接的有效性与访问安全性。…

    2026年9月24日 • 用户投稿
    200
  • AI聊天助手有哪些_好用的AI聊天助手工具大全

    AI聊天助手有哪些_好用的AI聊天助手工具大全AI聊天助手有哪些_好用的AI聊天助手工具大全AI聊天助手有哪些_好用的AI聊天助手工具大全AI聊天助手有哪些_好用的AI聊天助手工具大全

    ☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜ 豆包:字节跳动推出的免费AI智能助手 问小白:免费AI智能助手,支持DeepSeek满血版 讯飞星火:AI智能助手,支持PPT生成、深度推理 逗逗:AI游戏陪玩,支持原神、黑神话、LOL! 立即…

    2026年9月24日 • 用户投稿
    200

发表回复

登录后才能评论
关注微信