
在数据处理的日常工作中,我们经常需要从非结构化或半结构化的文本文件中提取有用的信息。例如,一个日志文件可能包含日期、事件描述和相关的数值数据。本教程将以一个具体的场景为例:从一个包含星期和对应数值列表的文本文件中,计算每个星期的数值总和。
处理此类文本文件的关键在于有效地分割字符串、转换数据类型并进行累加计算。我们将分以下几个步骤实现:
假设我们有一个名为 TB1.txt 的文件,内容如下:
Monday: 12,34,-90 Saturday: 32,-23,20
以下是实现上述逻辑的Python代码:
Shell本身是一个用C语言编写的程序,它是用户使用Linux的桥梁。Shell既是一种命令语言,又是一种程序设计语言。作为命令语言,它交互式地解释和执行用户输入的命令;作为程序设计语言,它定义了各种变量和参数,并提供了许多在高级语言中才具有的控制结构,包括循环和分支。它虽然不是Linux系统核心的一部分,但它调用了系统核心的大部分功能来执行程序、建立文件并以并行的方式协调各个程序的运行。因此,对于用户来说,shell是最重要的实用程序,深入了解和熟练掌握shell的特性极其使用方法,是用好Linux系统
24
立即学习“Python免费学习笔记(深入)”;
def calculate_sum_from_file(file_path):
"""
从指定文本文件中读取数据,计算每行数值的总和并打印。
Args:
file_path (str): 待处理的文本文件路径。
"""
try:
with open(file_path, 'r') as file:
for line in file:
# 移除行尾的空白字符(如换行符)
line = line.strip()
if not line: # 跳过空行
continue
# 1. 使用冒号分割,左边是标签,右边是数值字符串
# 例如: "Monday: 12,34,-90" -> label="Monday", fields=" 12,34,-90"
if ':' not in line:
print(f"警告: 行 '{line}' 格式不正确,跳过。")
continue
label, fields = line.split(':', 1) # 使用split(delimiter, 1)确保只分割第一次出现的冒号
label = label.strip() # 清理标签两边的空白
# 2. 使用逗号分割数值字符串,得到单个数值的字符串列表
# 例如: " 12,34,-90" -> [" 12", "34", "-90"]
value_strings = fields.split(',')
current_sum = 0
for v_str in value_strings:
try:
# 3. 将每个数值字符串转换为整数并累加
current_sum += int(v_str.strip()) # strip() 用于移除数值字符串两边的空白
except ValueError:
print(f"警告: 在 '{label}' 中发现无效数值 '{v_str.strip()}',已跳过。")
continue
# 4. 打印结果
print(f"{label}: {current_sum}")
except FileNotFoundError:
print(f"错误: 文件 '{file_path}' 未找到。请检查文件路径。")
except Exception as e:
print(f"处理文件时发生未知错误: {e}")
# 调用函数处理文件
calculate_sum_from_file('TB1.txt')
代码解析:
通过本教程,我们学习了如何使用Python有效地解析结构化文本文件,从混合数据中提取并计算数值总和。关键技术包括安全的文件读取、多级字符串分割以及稳健的类型转换。掌握这些技能将使您能够处理各种文本数据处理任务,提高数据分析和处理的效率。记住,在编写代码时考虑数据的多样性和潜在的错误情况,将有助于构建更加健壮和可靠的应用程序。
以上就是Python中解析结构化文本文件并计算数值总和的教程的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号