У меня есть тестовый файл со следующими двумя строками текста:
( PIN 700_start_stop( STS_PROP( POS_X 123 )( POS_Y 456 )( BIT_CNT 1 )(
CNCT_ID 7071869 ))(USR_PROP( VAR 1( Var_typ -1 )(AssocCd H12 )( termLBLtmc
+S))
( PIN 700_start_stop( STS_PROP( POS_X 123 )( POS_Y 456 )( BIT_CNT 1 )(
CNCT_ID 7071869 ))(USR_PROP( VAR 1( Var_typ -1 )(AssocCd H12 )( termLBLtmc
+S))
Они хранятся в текстовом файле с именем 'test.txt'
Я пытаюсь выполнить итерациюкаждая отдельная строка текстового файла и, используя регулярное выражение, помещает информацию, которую я хочу, в информационный кадр pandas (не вопрос регулярного выражения, у меня есть это).По какой-то причине я могу получать информацию только из одной строки, а не из всех.Ниже мое мышление:
import re
import pandas as pd
df1 = pd.DataFrame()
with open(r'C:\Users\User1\Documents\Python Scripts\test.txt', 'r') as txt:
for each_line in txt:
line=txt.read().replace('\n','') # convert line to type str
re1='.*?' # Non-greedy match on filler
re2='(\\d+)' # Integer Number 1
re3='((?:[a-z][a-z0-9_]*))' # Variable Name 1
rg = re.compile(re1+re2+re3,re.IGNORECASE|re.DOTALL)
m = rg.search(line)
if m:
int1=m.group(1)
var1=m.group(2)
print ("("+int1 + var1+")"+"\n")
df1[df1.iloc(), 'Name'] = "("+int1 + var1+")"+"\n"
В идеале вывод на печать этого файла должен быть:
>>(700_start_stop)
>>(700_start_stop)
И кадр данных должен выглядеть примерно так:
index Name
0 (700_start_stop)
1 (700_start_stop)