Python-如何同时读取多个文件并记录数据

标签 python dictionary

<分区>

我是 Python 新手。我有 10 个格式如下所示的输入文件。每个文件都包含一个接收器(接收器 1-10)的测量数据。每个接收器都有来自 10 个发射器(发射器 1-10)的测量值。这些文件按时间顺序排列,以秒为单位。

我想逐行同时读取 10 个文件。在读取文件时,我想从每个文件中为每个发射器收集 4 个测量值,并对这些值进行平均,以获得每个接收器-发射器对的 4 秒平均值。我想跟踪每个接收器-发射器对的每个平均值。一旦我收集了特定接收器的所有发射器的 4 秒平均值,我想对这些值进行平均以获得该接收器的平均值。我还想跟踪这些平均值(时间平均值和测量平均值)以及它们属于哪个接收器。

我无法将这些文件加载​​到内存中,因为这些文件很大(以千兆字节为单位)。由于文件的大小,将所有平均值保存在内存中也是一个问题。我只想为每个接收器-发送器对保留一个小时的数据,以获取内存中的平均值。一旦我有了一个小时的平均值,当计算出一个新的平均值时,我想丢弃最旧的平均值。

我当时认为字典可能是跟踪数据的最佳方式。

我怎样才能完成上面的任务?

输入文件:

列格式:时间(秒)Transmitter# Measurement

 0.0  1 2.4779E+02
 0.0  2 2.8147E+02
 0.0  3 2.7437E+02
 0.0  4 2.6661E+02
 0.0  5 2.2637E+02
 0.0  6 2.1457E+02
 0.0  7 2.3750E+02
 0.0  8 2.9573E+02
 0.0  9 2.7339E+02
 0.0 10 2.4982E+02
 1.0  1 2.1086E+02
 1.0  2 2.7459E+02
 1.0  3 2.1569E+02
 1.0  4 2.0018E+02
 1.0  5 2.8732E+02
 1.0  6 2.2633E+02
 1.0  7 2.2900E+02
 1.0  8 2.6883E+02
 1.0  9 2.4482E+02
 1.0 10 2.8314E+02
 2.0  1 2.6987E+02
 2.0  2 2.5946E+02
 2.0  3 2.8195E+02
 2.0  4 2.3097E+02
 2.0  5 2.2592E+02
 2.0  6 2.5316E+02
 2.0  7 2.5562E+02
 2.0  8 2.5892E+02
 2.0  9 2.1258E+02
 2.0 10 2.5791E+02

最佳答案

您可以使用 Python 中的 FileObject.readline() 来并行访问文件。

#!/usr/bin/python

# Open a file
fo = open("foo.txt", "rw+")
fo1 = open("foo1.txt", "rw+")

line = fo.readline()
print "Read Line from foo: %s" % (line)

line = fo1.readline()
print "Read Line from foo1: %s" % (line)

# Close opend file
fo.close()
fo1.close()

同样,您可以为 10 个不同的输入文件使用 10 个对象,并对每个文件使用 readline。希望这会有所帮助。

对于您的问题陈述,可以读取每个发射器的每个文件的测量值,并对这些值进行平均以获得每个接收器-发射器对的 4 秒平均值。要跟踪每个接收器-发射器对的每个平均值,请创建字典或自定义列表。然后为接收器构建逻辑以获得最终结果/值。但是请确保,一旦不再需要这些数据,您就会从字典/列表中删除它们。希望这会有所帮助。

关于Python-如何同时读取多个文件并记录数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37107245/

相关文章:

python - Pandas 在日期列上重新采样

python - ".directory"在家里可以接受吗?

python - Numpy 的结构化数组与 xarray (xray) 有什么区别?

ios - 使用 Swift 在 Firebase 中保存键值字典

Python 按数字对字典列表进行排序

c++ - C++中的简单字典

python - 我的 Tetration(复数)函数必须更好地矢量化(Python)

Python 字典中的最大列表

python - 在Python 3.3中通过循环将键和值迭代到字典中

python - 如何从具有两列的 CSV 创建字典作为 Python 中的键