从遵循命名约定的每个文本文件中提取一个值- how



我需要提取目录中每个文本文件的最后一行中的最后一个数字。有人能用Python教我这个吗?数据是格式化为如下格式的信息:

# time 'A' 'B'
  0.000000E+00 10000 0
  1.000000E+05 7742 2263

,其中'#'列在每个文件中为空。文件名遵循以下命名约定:

for i in `seq 1 100`; for j in `seq 1 101`; for letter in {A..D}; 
filename = $letter${j}_${i}.txt

这些文件包含在KaSim (Kappa语言)中运行模拟的结果数据。我想取提取的数字的子集的平均值,并绘制出一些结果。

Matlab无法处理我正在处理的50,000个文件集。我对Python比较陌生,但我有Matlab和r的经验。我想通过Python进行数据提取,并在Matlab或r中进行分析。

谢谢你的帮助

这段代码应该可以帮助您入门。只要目录中只有那些需要最后一个数字的文件,就可以忽略命名约定。因为,您可以查找该目录下的所有文件。

import glob
last_numbers = []
for filename in glob.glob("/path/to/directory/*"):  # dont forget this ending * (its wild character)
    last_number = file.open(filename).readlines()[-1].split(" ")[-1]
    # in case last line is empty line 'n' and your interest is in last second line then it should be '.readlines()[-2].split(" ")[-1]'
    last_numbers.append(last_number)

相关内容

  • 没有找到相关文章

最新更新