【发布时间】:2019-02-26 17:05:36
【问题描述】:
我有一个包含以下两行文本的测试文件:
( 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”的文本文件中
我正在尝试遍历文本文件的每一行,并使用正则表达式将我想要的信息推送到熊猫数据框中(不是正则表达式问题,我有)。出于某种原因,我只能从一行中获取信息,而不是全部。以下是我的想法:
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)
【问题讨论】: