在某些目录(/ patch / in)中,我有名为:
的文件S0000001.ARQ
S0000001.SRQ
S0000002.ARQ
S0000002.SRQ
......等等
每个文件的结构基本相同,但值不同,例如: `
----- BEGIN REQUEST -----
RQID=S0000001.ACE
POLICY=AUT
G=STEVEN
SN=JEENS
SERIALNUMBER=060294223
DOCUMENT=S0000001
----- END REQUEST -----
我想从dir读取每个文件并取出一些值以便以后使用它们。 我现在拥有的:
path = 'patch/in/*.ARQ'
files=glob.glob(path)
for file in files:
f=open(file, 'r')
print '%s' % f.readlines()
我想打印(存储)行:
POLICY=AUT
G=STEVEN
SN=JEENS
SERIALNUMBER=060294223
DOCUMENT=S0000001
然后是实际值:
AUT
STEVEN
EENS
060294223
S0000001
答案 0 :(得分:0)
假设您读取文件的代码正常工作,您可以按如下方式解析这些行:
import re
...
...
lines = f.read()
keyValues = re.findall('^(\\w+)=(.+)$', lines, re.MULTILINE)
print('Lines containing key and value:')
for key, value in keyValues:
print('{}={}'.format(key, value))
print('Actual values:')
for key, value in keyValues:
print(value)
修改:更新了读取文件方法
答案 1 :(得分:0)
您可以随时打印包含'='的行,并在最后累积要打印的值。
path = 'patch/in/*.ARQ'
files=glob.glob(path)
for filename in files:
values = []
with open(filename) as f:
for line in f:
if '=' in line:
print line,
key, value = line.strip().split('=')
values.append(value)
print '\n'.join(values)