从一千个文件中提取某些数据并逐列放入excel表中

问题描述

我有大约 3000 个数据文件(以 .witsml 格式在记事本中打开,如下所示)。我想提取显示的两条红线包围的时间和数据集。每个文件都有相同的行数。

这里的问题是每个文件都包含不同时间戳的数据。因此,从一个文件提取所需的数据后,我需要将它们放在 Excel 工作表列中。然后下一个文件数据,解压后放到下一列,依此类推。

我有 Python 和 Matlab 的初级知识。考虑到这一点,会推荐将所有这些 3k 文件转换为并排列的 .csv 格式的代码结构吗? enter image description here

解决方法

简短地看一看并阅读此类文档的文档,这似乎是一种 XML 格式。

例如我发现了这个 about loading xml to pandas

从数据框中,您可以通过

简单地将其保存到 csv
pandas.DataFrame.to_csv()

你尝试过这样的事情吗? 无论如何,pandas 也有用于日期戳的内置函数。

由于直接加载似乎有一些困难,您可以尝试通过 python 读取文件,例如:

from datetime import datetime
def process_time(timestring):
    # extract time data here - if every file is same,always pass third line
    # make use of datetime if helpfull e.g. strptime

    return datestamp
def process_data(datastringlist):
    # IN: list with all lines with data in it
    datalist = []
    for dataline in datastringlist:
         start = dataline.find('<data>')
         end = dataline.find('</data>')
         data = dataline[start+len('<data>'):end]
         datalist.append(data)

    return datalist

if __name__ == '__main__':
    with open('myfile.xml','r') as f:
         linelist = f.readlines()

    dstamp = process_time(linelist[2]) # if time is always there
    datalist = process_data(linelist[9:]) # maybe check before where <data> starts