Форум сайта python.su
0
Здравствуйте!
Начал изучение языка для использования в рутинной работе. Но задача уже стоит, а знаний пока недостаточно 
Прошу помочь с решением такой задачи. Есть txt файл.
SERVICE AREA DATA
SA NAME :XXXXXXXXX2 NUMBER :1064
SERVICE AREA IN MSS CONCEPT
LA NAME :LAC1234 LAC :1234
MOBILE COUNTRY CODE ………………..(MCC)… :123
MOBILE NETWORK CODE ………………..(MNC)… :01
SERVICE AREA CODE ………………….(SAC)… :98745
ADMINISTRATIVE STATE ……………………… :UNLOCKED
SERVICE AREA DATA
SA NAME :XXXXX1 NUMBER :1271
SERVICE AREA IN MSS CONCEPT
LA NAME :LAC9874 LAC :9874
MOBILE COUNTRY CODE ………………..(MCC)… :365
MOBILE NETWORK CODE ………………..(MNC)… :01
SERVICE AREA CODE ………………….(SAC)… :35467
ADMINISTRATIVE STATE ……………………… :UNLOCKED
SERVICE AREA DATA
SA NAME :XXXXXXXX NUMBER :1272
SERVICE AREA IN MSS CONCEPT
LA NAME :LAC777 LAC :777
MOBILE COUNTRY CODE ………………..(MCC)… :567
MOBILE NETWORK CODE ………………..(MNC)… :01
SERVICE AREA CODE ………………….(SAC)… :96758
ADMINISTRATIVE STATE ……………………… :LOCKED
| SA NAME | NUMBER | LA NAME | LAC | SAC | STATE | Current date-time|
| XXXXXXXXX | 1272 | LAC777 | 777 | 96758 | LOCKED | 03.11.15 - 10:00 |

Отредактировано vzhyk (Ноя. 4, 2015 10:49:48)
Прикреплённый файлы:
Example.TXT (1,2 KБ)
Офлайн
24
Ну так показывайте что Вы уже наработали если нужна помощь или платите деньги и получите готовое решение ( желающих помочь тут много )
Офлайн
857
#!/usr/bin/env python3
import re
import datetime
pat = """\
SERVICE AREA DATA
SA NAME :(\S+) +NUMBER :(\S+)
SERVICE AREA IN MSS CONCEPT
LA NAME :(\S+) +LAC :(\S+)
MOBILE COUNTRY CODE ....................\(MCC\)... :\S+\s*
MOBILE NETWORK CODE ....................\(MNC\)... :\S+\s*
SERVICE AREA CODE ......................\(SAC\)... :(\S+)
ADMINISTRATIVE STATE ........................... :(\S+)"""
names = ['SA NAME', 'NUMBER', 'LA NAME',
'LAC', 'SAC', 'STATE', 'Current date-time']
def load_records(fname, pat):
with open(fname, encoding='utf-8') as fin:
text = fin.read()
out = re.findall(pat, text)
return out
def add_time(seq):
dt = datetime.datetime.now()
for i in seq:
yield i + ('{:%d.%m.%y - %H:%M}'.format(dt),)
def save_records(fname, names, seq):
header = format_line(names)
with open(fname, 'w', encoding='utf-8') as fout:
print(header, file=fout)
for i in map(format_line, seq):
print(i, file=fout)
def format_line(seq):
return '| {} |'.format(' | '.join(seq))
def main():
ifname = 'file.txt'
ofname = 'out.txt'
records = load_records(ifname, pat)
records_timed = add_time(records)
save_records(ofname, names, records_timed)
if __name__ == '__main__':
main()
| SA NAME | NUMBER | LA NAME | LAC | SAC | STATE | Current date-time |
| XXXXXXXXX | 568 | LAC9876 | 9876 | 66547 | UNLOCKED | 04.11.15 - 21:06 |
| XXXXXXXX1 | 4573 | LAC5436 | 5436 | 9812 | UNLOCKED | 04.11.15 - 21:06 |
| YYYYYYYY1 | 1069 | LAC143 | 143 | 32467 | LOCKED | 04.11.15 - 21:06 |
Отредактировано py.user.next (Ноя. 4, 2015 13:12:25)
Офлайн