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等文件。
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。