如何从 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']
所以我有一个 .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']