如何从 txt 文档中提取多个用​​括号分隔的数字到 python 列表中?

How to xtract multiple numbers delimited by brackets from a txt document into a python list?

所以我有一个 .txt 文件,如下所示:

[some_strings] id:[1227194]
[some_strings] id:[1227195]
[some_strings] id:[1227196]

我需要做的是提取括号 [] 之间的所有数字并将它们附加到一个列表中,然后我将使用该列表进行进一步分析。 那么最终结果应该是:

list = [1227194,1227195,1227196]

实现这一目标的最 pythonic 方法是什么?

正则表达式解释here

import re

s = """[some_strings] id:[1227194]
[some_strings] id:[1227195]
[some_strings] id:[1227196]"""

l = re.findall(r'\[(\d+)\]', s, re.MULTILINE)
print(l) #['1227194', '1227195', '1227196']

您可以使用 .split,另一种方法是使用正则表达式:

s = """
[some_strings] id:[1227194]
[some_strings] id:[1227195]
[some_strings] id:[1227196]
"""

[line.rstrip(']').split('[')[-1] for line in s.split('\n') if line != '']
# Out[95]: ['1227194', '1227195', '1227196'

我认为的方式是:

ids = []
with open(text.txt) as file:
   for line in file.readlines():
       id_with_bracket = split('id:[')
       ids.append(int(id_with_bracket[:-1]))
import re
with open('text.txt', 'r') as f:
     data = re.findall('\d+',f.read())


['1227194', '1227195', '1227196']

试试这个:

import re

filename = 'text.txt'

with open(filename) as file:
    lines = file.readlines()
    lines = " ".join(line.rstrip() for line in lines)    
    num_list = re.findall('\d+',lines)
num_list

输出:

['1227194', '1227195', '1227196']