您当前的位置:首页 > 电脑办公 > excel
| PPT | 电脑打字 | 计算机基础 | word | excel | Linux教程 |

自学教程:python怎么读取txt文件的某一行-python – 如何只读取文本文件中的特定行?

51自学网 2021-11-28 15:40:05
  excel
这篇教程python怎么读取txt文件的某一行-python – 如何只读取文本文件中的特定行?写得很实用,希望能帮到您。

python怎么读取txt文件的某一行-python – 如何只读取文本文件中的特定行?

-1411.85 2.6888 -2.09945 -0.495947 0.835799 0.215353 0.695579

-1411.72 2.82683 -0.135555 0.928033 -0.196493 -0.183131 -0.865999

-1412.53 0.379297 -1.00048 -0.654541 -0.0906588 0.401206 0.44239

-1409.59 -0.0794765 -2.68794 -0.84847 0.931357 -0.31156 0.552622

-1401.63 -0.0235102 -1.05206 0.065747 -0.106863 -0.177157 -0.549252

....

....

然而,该文件是几GB,我非常希望在小块的行中读取它.我想使用numpy的loadtxt函数,因为这会将所有内容快速转换为numpy数组.但是,到目前为止,我还无法管理该函数似乎只提供了像这里的列选择:

data = np.loadtxt("test.dat", delimiter=' ', skiprows=1, usecols=range(1,7))

任何想法如何实现这一目标?如果使用loadtxt不可能在Python中提供任何其他选项?

解决方法:

如果你可以使用pandas,那会更容易:

In [2]: import pandas as pd

In [3]: df = pd.read_table('test.dat', delimiter=' ', skiprows=1, usecols=range(1,7), nrows=3, header=None)

In [4]: df.values

Out[4]:

array([[ 2.82683 , -0.135555 , 0.928033 , -0.196493 , -0.183131 ,

-0.865999 ],

[ 0.379297 , -1.00048 , -0.654541 , -0.0906588, 0.401206 ,

0.44239 ],

[-0.0794765, -2.68794 , -0.84847 , 0.931357 , -0.31156 ,

0.552622 ]])

编辑

如果你想读每行k行,你可以指定chunksize.例如,

reader = pd.read_table('test.dat', delimiter=' ', usecols=range(1,7), header=None, chunksize=2)

for chunk in reader:

print(chunk.values)

日期:

[[ 2.6888 -2.09945 -0.495947 0.835799 0.215353 0.695579]

[ 2.82683 -0.135555 0.928033 -0.196493 -0.183131 -0.865999]]

[[ 0.379297 -1.00048 -0.654541 -0.0906588 0.401206 0.44239 ]

[-0.0794765 -2.68794 -0.84847 0.931357 -0.31156 0.552622 ]]

[[-0.0235102 -1.05206 0.065747 -0.106863 -0.177157 -0.549252 ]]

您必须按照自己的意愿处理如何将它们存储在for循环中.请注意,在这种情况下,reader是TextFileReader,而不是DataFrame,因此您可以懒惰地遍历它.


Python中pd.read_csv()函数用法简单介绍
python 利用split读取文本文件中每一行的数字并保存至相应文件夹
51自学网,即我要自学网,自学EXCEL、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。
京ICP备13026421号-1