在python中迭代re.compile,使用列表查找两个字符串之间的数据
我试图从文本文件中提取不同字符串之间的数据。适用于我的代码是:在python中迭代re.compile,使用列表查找两个字符串之间的数据,python,regex,text-files,data-extraction,Python,Regex,Text Files,Data Extraction,我试图从文本文件中提取不同字符串之间的数据。适用于我的代码是: file = open('col1.txt', 'r') data = file.read() file.close() block = re.compile( r"C1C1" "(.*?)" "(C1C2)", re.IGNORECASE | re.DOTALL | re.MULTILINE) data_block = [result[1] for result in re.findall(block, data)] output
file = open('col1.txt', 'r')
data = file.read()
file.close()
block = re.compile(
r"C1C1"
"(.*?)"
"(C1C2)",
re.IGNORECASE | re.DOTALL | re.MULTILINE)
data_block = [result[1] for result in re.findall(block, data)]
output = open('output1.csv', 'w')
for data_new in data_block:
data_list = data_new.split('\n')
for x in data_list:
component = x.split()
for comp in component:
output.write(comp + ',')
output.write('\n')
它返回字符串“C1C1”和“C1C2”之间的数据。我的文件中有此类字符串的列表:
周期=['C1C1','C1C2','C1C3',…]
我想通过for循环使用这个列表来迭代代码,从我的文件中提取所有这些标记之间的数据。我想做的是创建一个Excel工作簿,其中包含每个周期的数据
这是数据结构
C1C1
第1列第2列第3列第4
第1列第2列第3列第4
第1列第2列第3列第4
C1C2
注意:我是Python的初学者,因此可能还有一些方法可以改进我的代码并使其更高效
任何帮助都将受到高度赞赏。谢谢 为什么不在
循环中拆分字符串呢?或者在regexC1C\d
上拆分(或类似)?@ctwheels您的意思是使用.split()?你的意思是什么?文本文件取决于内容,但要么在数组上创建for循环,要么使用array@ctwheels我已经添加了数据结构。有很多C1C*,我想在每个C1C*和C1C*+1之间迭代。然后只需执行一个循环并生成拆分字符串