从文本文件中提取Python数据

从文本文件中提取Python数据,python,text-files,extraction,Python,Text Files,Extraction,问题是从文本文件中的一堆垃圾中提取数据。例如,首先,我需要从文本文件中拉出此特定部分: %T 525 1:0.00:6425.12 2:0.01:6231.12 3:0.00:3234.51并且持续了很长时间 然后,我需要特别从每个短语中提取第三个数据,即6425.12、6231.12和3234.51,并将其写入新的文本文件,然后对这些数据进行其他编辑 我正在研究在这个案例中使用正则表达式。有人能展示示例代码吗?对于有经验的程序员来说,这应该是非常直接的 您不需要re来获取数字 s='%T 52

问题是从文本文件中的一堆垃圾中提取数据。例如,首先,我需要从文本文件中拉出此特定部分:

%T 525 1:0.00:6425.12 2:0.01:6231.12 3:0.00:3234.51并且持续了很长时间

然后,我需要特别从每个短语中提取第三个数据,即6425.12、6231.12和3234.51,并将其写入新的文本文件,然后对这些数据进行其他编辑


我正在研究在这个案例中使用正则表达式。有人能展示示例代码吗?对于有经验的程序员来说,这应该是非常直接的

您不需要
re
来获取数字

s='%T 525 1:0.00:6425.12 2:0.01:6231.12 3:0.00:3234.51'
columns=s.split()[2:]  #Create a list of all the columns except the first 2.
numbers=[c.split(':')[-1] for c in columns]  #Split each column on ':' and take the last piece.

但是,我们需要更多关于文件结构的信息,然后才能确定如何首先选择字符串
s

您不需要
re
来获取数字

s='%T 525 1:0.00:6425.12 2:0.01:6231.12 3:0.00:3234.51'
columns=s.split()[2:]  #Create a list of all the columns except the first 2.
numbers=[c.split(':')[-1] for c in columns]  #Split each column on ':' and take the last piece.

然而,我们需要更多关于文件结构的信息,然后才能确定如何首先选择字符串
s

我不认为我会为此求助于regex,看起来很简单

with open(...) as file:
    for line in file:
        for word in line.split():
             if ':' in word:
                  print word.split(':')[2]  # do something with it here

我不认为我会求助于正则表达式,看起来很简单

with open(...) as file:
    for line in file:
        for word in line.split():
             if ':' in word:
                  print word.split(':')[2]  # do something with it here

您发布的字符串与文件中的所有其他字符串有何不同?这是必要的,以便能够加工出一个足够用于挑选该字符串而不是下一个字符串的正则表达式,它可能(或可能不)看起来像<代码> %T 526 1:0.00:…< /代码>是的,考虑使用正则表达式。好吧,对不起,伙计们。到目前为止,我已经做了很多测试和谷歌搜索。我设法用startswith从其他垃圾中取出那个特定的部分,并将其写入一个新的文本文件。现在的问题是,在Python中,对于每个短语(6425.12、6231.123234.51,…)中的所有第三个数据,使用什么函数来提取特定的数据。我现在没有带整个文本文件。它在另一台计算机中。我可以明天寄。但基本上,我需要帮助从每个短语中提取每三分之一的数据。您发布的字符串与文件中的所有其他字符串有何不同?这是必要的,以便能够加工出一个足够用于挑选该字符串而不是下一个字符串的正则表达式,它可能(或可能不)看起来像<代码> %T 526 1:0.00:…< /代码>是的,考虑使用正则表达式。好吧,对不起,伙计们。到目前为止,我已经做了很多测试和谷歌搜索。我设法用startswith从其他垃圾中取出那个特定的部分,并将其写入一个新的文本文件。现在的问题是,在Python中,对于每个短语(6425.12、6231.123234.51,…)中的所有第三个数据,使用什么函数来提取特定的数据。我现在没有带整个文本文件。它在另一台计算机中。我可以明天寄。但基本上,我需要帮助从每个短语中提取每三分之一的数据。优雅而简单。当我使用2 split和[]来捕获字符串中的元素时,我的头脑中的事情变得复杂了。启发!我希望我能投赞成票,但我不能。新来的。谢谢大家!我使用startswith捕获了%T 525 1:0.00:6425.12 2:0.01:6231.12 3:0.00:3234.51等节,并将此节写入新的文本文件。将新文本文件转换为字符串???????捕获此部分的其他方法?好的,我会尽量提供更多的原始信息textfile@MelvinAng对不起,我不明白你最后的评论是什么。如果
startswith
足够好,那就使用它吧——我怀疑
re
是否能提高性能。至于将数字写入新的文本文件,您可以使用
join
方法将我的列表“数字”转换为字符串。e、 g.
“,”。join(numbers)
将在每个数字之间创建一个带“,”的字符串。优雅而简单。当我使用2 split和[]来捕获字符串中的元素时,我的头脑中的事情变得复杂了。启发!我希望我能投赞成票,但我不能。新来的。谢谢大家!我使用startswith捕获了%T 525 1:0.00:6425.12 2:0.01:6231.12 3:0.00:3234.51等节,并将此节写入新的文本文件。将新文本文件转换为字符串???????捕获此部分的其他方法?好的,我会尽量提供更多的原始信息textfile@MelvinAng对不起,我不明白你最后的评论是什么。如果
startswith
足够好,那就使用它吧——我怀疑
re
是否能提高性能。至于将数字写入新的文本文件,您可以使用
join
方法将我的列表“数字”转换为字符串。e、 连接(数字)将在每个数字之间创建一个带“,”的字符串。