如何使用python语言从fi中提取特定数据

2024-04-25 22:58:00 发布

您现在位置:Python中文网/ 问答频道 /正文

我如何编写一个python程序来从包含数据集的文本文件中提取石油、天然气和水的日期和累计产量数据及其各自的值。谢谢


时间:3622天X p T S E C T O R S U M A R Y日期:2025:12:01


                                                     Reservoir                                                        

===================================================================================================================================================

^{pr2}$

批量 总体积。M rft3 2.42995E+7 2.43E+7 4.85995E+7
孔隙体积 总孔隙体积。M rft3 3.22463E+6 485.86 3.22511E+6
碳氢化合物。孔隙体积M rft3 2.57897E+6 388.56 2.57935E+6
原来的位置 储油罐M STB 0 0 0 0
吸附气体MM SCF 2.41498E+5 0 2.41498E+5
表面气体MM SCF 7.51141E+5 76.792 7.51218E+5
地表水M STB 1.15937E+5 17.469 1.15954E+5
目前已到位 储油罐M STB 0 0 0 0
吸附气体MM SCF 2.37806E+5 0 2.37806E+5
表面气体MM SCF 7.01409E+5 69.061 7.01478E+5
地表水M STB 1.15937E+5 17.469 1.15954E+5
吸附气体:成分化 CH4毫米摩尔2.84948E+50 0 2.84948E+5
储油器M rbbl 0 0 0
储层游离气M rft3 2.57897E+6 388.56 2.57935E+6
水库水M rbbl 1.14997E+5 17.329 1.15014E+5
累计水侵量M STB 0 0 0
平均压力 总平均PV.psia 2739.7 2707.6 2739.7
HC PV Ave.psia 2739.7 2707.7 2739.7
PV平均基准点P psia 2739.7 2707.6 2739.7
HC PV Ave.Datum P psia 2739.7 2707.7 2739.7
平均温度 Bulk Vol Ave.degF 150 150 150 150
平均饱和度 油0 0 0
气体0.79977 0.79975 0.79977
水0.20023 0.20025 0.20023
回收率 储备油箱油100 100 100
表面气体6.6221 0 6.6214
水2.35982E-5 0 2.35946E-5
累积注射 溶剂MM SCF 0 0 0
水M STB 0 0 0
累计产量 油M STB 0 0 0
气体MM SCF 49741 0 49741
水M STB 2.7359E-2 0 2.7359E-2
湿气MM SCF 49866 0 49866
注入速率 气体MM SCF/天0 0 0
水M STB/天0 0 0
生产率 油M STB/天0 0 0
气体MM SCF/天12.652 0 12.652
水M STB/天1.13795E-6 0 1.13795E-6
湿气MM SCF/天12.684 0 12.684


Tags: 数据体积表面mm产量pvscf气体
1条回答
网友
1楼 · 发布于 2024-04-25 22:58:00

你的问题很宽泛。你已经写过代码了吗?或者,你对编程真的很陌生吗?在

无论如何,要让您开始:

with open('filname.txt') as f:
    handle = f.readlines()
    for line in handle:
        # read the header
        if end_of_header:
            break
     there_are_more_lines = True  
     while there_are_more_lines:
        try:
            line = next(handle)
            # parse the line
        except StopIteration:
            there_are_more_lines = False

既然我不知道你的背景,我很快解释一下。我用'with'打开文件。现在我可以用readlines()函数逐行读取文件。我把这个函数的输出放在“handle”中。这是一个我可以迭代的迭代器。
现在文本文件有两个部分要检查。首先是标题。您应该分析标头,并找到一些可以判断标头何时停止的条件。
其次是身体。在我的例子中,我读取了所有的行,并捕捉一个StopIteration(文件末尾)来中断while循环。你应该找到一些东西来分析每一行。
使用其他函数:string.split()string.startwith('something')

如果您是python的新手,这可能不是最好的帮助,tutorialspoint或其他东西可能是开始收集知识来解决问题的更好的地方。在

祝你好运。在

编辑: 要获取并解析每行的最后三个数字,可以使用:

^{pr2}$

这一行代码首先基于空格拆分该行。然后取最后三个“单词”,即数字,并使用一个映射将它们全部放入float函数中。float函数将它们全部转换为数字(float函数理解文件中使用的科学符号)。map函数将float函数应用于由我的split创建的每个列表项。map函数返回迭代器类型。如果您现在不知道如何使用迭代器,您可以直接将其转换回列表。在

相关问题 更多 >