python读取文件中的字符进行处理(可用于分析log中的数据)

本文介绍了一种从指定日志文件中读取loss数据的方法,并将其存储为浮点数列表,以便于后续的数据分析和图表绘制。通过逐行解析日志,识别并提取与loss相关的数值,确保了数据的准确性和类型一致性。

直接上代码然后注释,很容易理解:

# 先声明列表
losslist = []
#打开文件然后将数据读入lines
with open ('VGG_VOC0712_SSD_300x300.log') as lines:
    flag = 0
    for line in lines: # 一行一行的来
        wordlist = line.split() #按照空格将每一行都分开放进woedline列表
        for word in wordlist: #遍历列表中的每个单词           
            if(flag == 2):
                flag = 0
                losslist.append(float(word)) #将loss后面的数字放进losslist中,并转换成float类型的
            if(flag == 1):
                flag = 2
            if(word == 'loss'):
                flag = 1

print(losslist)

注意如果想画loss下降的图,一定将loss的值读出来之后转化成 float 类型的,不然画图会出现当做string处理的情况。

Python读取 `.log` 格式的文件读取其他文本文件的方式相同,因为 `.log` 文件本质上是纯文本文件。可以使用内置的 `open()` 函数或 `pathlib` 模块来读取文件内容。 ### 使用 `open()` 读取 `.log` 文件 以下是一个基本示例,展示如何使用 `open()` 函数打开并读取 `.log` 文件的内容: ```python with open("example.log", "r", encoding="utf-8") as file: log_content = file.read() print(log_content) ``` 该代码以只读模式 (`"r"`) 打开 `example.log` 文件,并将其内容读取为一个字符串。 ### 使用 `pathlib` 模块读取 `.log` 文件 如果希望使用更现代的路径操作方式,可以使用 `pathlib` 模块中的 `Path` 类来读取 `.log` 文件: ```python from pathlib import Path log_path = Path("example.log") if log_path.exists(): log_content = log_path.read_text(encoding="utf-8") print(log_content) else: print("Log file does not exist.") ``` 上述代码使用 `Path` 对象检查文件是否存在,并通过 `read_text()` 方法将文件内容读取字符串,同时指定编码为 UTF-8。 ### 逐行读取 `.log` 文件 如果 `.log` 文件较大,建议逐行读取以避免一次性加载过多数据到内存中: ```python with open("example.log", "r", encoding="utf-8") as file: for line in file: print(line.strip()) ``` 此方法逐行读取文件内容,并使用 `strip()` 去除每行末尾的换行符和空格。 ### 结合文件路径处理 如果 `.log` 文件位于项目目录的特定位置,可以结合 `pathlib` 进行更灵活的路径处理,例如: ```python from pathlib import Path log_path = Path(__file__).parent.parent.joinpath("logs", "example.log") if log_path.exists(): log_content = log_path.read_text(encoding="utf-8") print(log_content) ``` 此代码片段展示了如何基于当前脚本文件的路径构建 `.log` 文件的路径,并读取其内容。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值