python

关注公众号 jb51net

关闭
首页 > 脚本专栏 > python > Python读取txt文件获取指定行指定位置数据

Python如何读取txt文件,获取指定行中指定位置数据

作者:pangpd

这篇文章主要介绍了Python如何读取txt文件,获取指定行中指定位置数据,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

Python读取txt文件,获取指定行中指定位置数据

问题描述

需求:读取大约有200多行的txt文件,获取17-216行中每行中指定位置中的数值。

实现:

#-*- coding: utf-8 -*-
"""
@Date:   2020/5/21 21:53
@Author: Pangpd

@FileName: read_log.py
@IDE: PyCharm
@Description: 获取日志中的训练精度和损失
"""
import linecache


#获取指定行内容
def get_line(file, nums_line):
    return linecache.getline(file, nums_line).strip()


file = 'D:/UseTools/OneDrive/codes/My-Research/logs/05-01_10-09-40/05-01_10-09-40.txt'
train_accuracy_list = []
train_loss_list = []
for line in range(17, 217):
    current_context = get_line(file, line).split()
    train_accuracy = float(current_context[9])
    train_loss = float(current_context[6])
    train_accuracy_list.append(train_accuracy)
    train_loss_list.append(train_loss)

python读取txt文件并画图

方法1

已知txt文件内容如下:

0   0
1   1
2   4
3   9
4   16
5   25
6   36

请以第一列为x轴,第二列为y轴画图

步骤如下:

1)使用readlines读取文件

2)建立两个空列表X,Y,将第一列的数字放入X,第二列的数字放入Y中

3)以X,Y为轴画图

实现如下:

X, Y = [], []
for line in open('my_data.txt', 'r'):
    values = [float(s) for s in line.split()]
    X.append(values[0])
    Y.append(values[1])
plt.plot(X, Y)  #二维数据是折线图,一维数据就是柱状图
plt.show()

方法2 使用numpy

import matplotlib.pyplot as plt
import numpy as np

data = np.loadtxt('test1.txt')

plt.plot(data[:,0],data[:,1])
plt.show()

结果和上面的图一样

使用numpy是最方便的;当然刚开始的程序有点儿复杂,但对于理解python画图的实现过程是有帮助的。

另外,numpy.loadtxt还可以读取.dat等文件。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文