如何在 Python 中的文本文件中提取部分图案线条的一部分?

容番

我有一个包含以下内容的文本文件:

0:00 txt txt e-mail1_to_extract txt_to_extract1 txt txt /data
0:00 txt txt e-mail2_to_extract txt_to_extract2 txt txt /data
0:00 txt txt txt e-mail3_to_extract txt_to_extract3 txt txt /var
0:00 txt txt txt txt e-mail4_to_extract txt_to_extract4 txt txt /var
0:00 txt txt e-mail5_to_extract txt_to_extract5 txt txt /data

首先,我想提取“0:00”和“/data”或“/var”之间的所有这些行。其次,我想处理这些数据,以便我只能提取其中的两部分。这个已经提取的范围中包含的文本没有标准化,所以我不能使用“startwith”/“endwith”之类的东西,但是,整个文本被连接起来(就像一个完整的单词)并且它的位置总是在电子邮件之后重复部分。有什么方法可以专门映射该部分并提取电子邮件+下一个字符串?

Txt = 我不想提取的额外文本。

我已经尝试从下面的代码开始,但没有得到任何结果:

with open('content.txt') as infile, open('extraction.txt', 'w') as outfile:
copy = False
for line in infile:
    if line.strip() == "0:00":
        copy = True
        continue
    elif line.strip() == "/":
        copy = False
        continue
    elif copy:
        outfile.write(line)

期望的输出:

e-mail1_to_extract txt_to_extract1
e-mail2_to_extract txt_to_extract2
e-mail3_to_extract txt_to_extract3
e-mail4_to_extract txt_to_extract4
e-mail5_to_extract txt_to_extract5

谢谢!

阿里特什

我使用了您提供的格式的示例文件 -

0:00 txt txt123 [email protected] txt_to_extract1 txt6456 txtssss /data
0:00 txt11 txt111 [email protected] txt_to_extract2 txtssss txtffff /data
0:00 txt111 txt123 txt [email protected] txt_to_extract3 txtosvbsvs txtkkkk /var
0:00 txt456 txt3663 [email protected] txt e-mail4_to_extract txt_to_extract4 txabjahsjat txtasba /var
0:00 txtGJK txtfggg [email protected] txt_to_extract5 txtbxajla txtzbaza /data

我使用了以下代码(用于确定电子邮件的功能,请相应地更改正则表达式)-

import re 
  
regex = '^[a-z0-9]+[\._]?[a-z0-9]+[@]\w+[.]\w{2,3}$'
def check(email):    
    if(re.search(regex,email)):  
        return True
    else:  
        return False
        
def getcols(row):
    for i in row.keys():
        if check(row[i]):
            return str(row[i]) + " " + str(row[i+1])
        else:
            return ""


ls = []
with open('TestData.txt') as infile, open('extraction.txt', 'w') as outfile:
    for line in infile:
        ls = line.split()
        for i in range(len(ls)):
            if check(ls[i]):
                try:
                    outfile.write(ls[i] + " " + ls[i+1]+"\n")
                except:
                    pass
                
            

我得到以下输出 -

[email protected] txt_to_extract1
[email protected] txt_to_extract2
[email protected] txt_to_extract3
[email protected] txt
[email protected] txt_to_extract5

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何将一部分 Python 代码保存在文本文件中?

python-从文本文件中提取每一行的一部分

如何在python中提取一部分字符串?

如何在python中根据关键字提取txt文件的一部分?

在python的文本文件中替换特定行的一部分

如何在python中删除文本的一部分

如何在Python中复制二进制文件的一部分?

如何在 Python 中替換文件路徑的一部分

如何读取文本文件中一行的一部分?

如何通过终端获取文本文件的一部分

如何将文本文件的内容添加为ELF文件中的一部分?

如何读取文本文件中的特定行并返回其中的一部分?

如何在python中将数组的一部分存储在不同的数组中

如何在python中删除网址的一部分?

如何在python数组中查找字符串的一部分

如何在python中绘制圆弧(圆的一部分)

如何在python列表中删除字符串的一部分?

如何在 Python 中跳过单个循环迭代的一部分

如何在Java中提取CSV文件的文件名的一部分

如何使外部文本文件成为可执行文件的一部分?

python-查找文本文件的一部分以导出为要处理的数据

如何从python数据框中基于其他两个列提取列的一部分

如何在python中的多行字符串中的两个子字符串之间提取字符串的一部分

如何用另一个文本文件替换标记之间的文本文件的一部分?

如何使用Python在Selenium和Web驱动程序中获取文本的一部分

当文件名是python中的变量时,如何更改文件名的一部分?

如何使用Selenium WebDriver和Python检索元素的文本的一部分?

在python中读取文件时如何跳过每一行的一部分

如何在Python中选择文件名的一部分(保留扩展名)?