Форум сайта python.su
0
Народ, подскажите, в чём проблема. Есть у меня файл лога, пытаюсь его распарсить. Т.е. строку делю на 4 части по знаку ‘ ; ’, соответственно 4 переменные
def pbs_to_dict(lines): logging.debug(lines) for l in lines: # Split line into parts, only care about raw_data data_time, job, cluster, raw_data = lines.split(';') data_time = data_time.split(' ') raw_data = raw_data.split(' ')
Отредактировано Syslik (Дек. 14, 2016 07:46:25)
Офлайн
61
Оберните код в тег КОД
Дайте полный лог ошибки
Офлайн
568
Прежде чем присваивать вот тут
data_time, job, cluster, raw_data = lines.split(';')
print(lines.split(';'))
Офлайн
0
Ну, сделала я принт того, что получилось после сплита вот так. Вот то-то и оно, что print(lines.split(';')) как раз делит, как мне нужно:
['08/01/2015 00:00:08", 'S', '27643398', "user=pilatl09 group=atlaspil jobname=cream_086765376 queue=atlas ctime=1438375665 qtime=1438375666 etime=1438375666 start=1438376408 owner=pilatl09 exec_host=wn/11 Resource_List.cput=60:00:00 Resource_List.neednodes=1 Resource_List.nodect=1 Resource_List.nodes=1 Resource_List.walltime=72:00:00\\n']
File "parse.py", line 19, in pbs_to_dict data_time, job, cluster, raw_data = lines.split(';') ValueError: too many values to unpack
Офлайн
253
Syslik1. надеетесь на не описанное в техничеком задании соглашение что будет 4 элемента в строке.
Что я делаю не так?
Офлайн
61
Прежде всего у вас ошибки в самой структуре данных
к примеру
['08/01/2015 00:00:08", 'S',
'
"
Офлайн
568
SyslikА вот теперь надо раскрыть глаза и увидеть, что принт вам написал одну строку, а не четыре.
Ну, сделала я принт
Офлайн
0
ZerG, всё, теперь заментила - вместо readlines использовать read. Благодарю
Офлайн
61
Не за что 
Офлайн