【问题标题】:Extract a value from each text file obeying a naming convention - how?从每个遵循命名约定的文本文件中提取一个值 - 如何?
【发布时间】:2016-07-04 19:47:08
【问题描述】:

我需要提取目录中每个文本文件最后一行的最后一个数字。有人可以让我开始使用 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 中进行分析。

感谢您的帮助。

【问题讨论】:

    标签: python file text extract


    【解决方案1】:

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

    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)
    

    【讨论】:

    • 谢谢 - 我会破译这段代码并测试一下!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-04
    • 2021-02-06
    • 1970-01-01
    • 2021-11-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多