Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在python中迭代re.compile,使用列表查找两个字符串之间的数据_Python_Regex_Text Files_Data Extraction - Fatal编程技术网

在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的初学者,因此可能还有一些方法可以改进我的代码并使其更高效


任何帮助都将受到高度赞赏。谢谢

为什么不在
循环中拆分字符串呢?或者在regex
C1C\d
上拆分(或类似)?@ctwheels您的意思是使用.split()?你的意思是什么?文本文件取决于内容,但要么在数组上创建for循环,要么使用array@ctwheels我已经添加了数据结构。有很多C1C*,我想在每个C1C*和C1C*+1之间迭代。然后只需执行一个循环并生成拆分字符串