我需要提取目录中每个文本文件的最后一行中的最后一个数字。有人能用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)