То, что я пытаюсь выполнить: вытащите последние 8 символов из строк в файле, нарежьте их на два куска символов, сравните их куски с моим словарем и список результатов. Это буквально первое, что я сделал в python, и моя голова крутится со всеми ответами здесь.
Мне кажется, что мне нужны основные инструкции по плаванию, и каждый ответ кажется праймером для бесплатного дайвинга для мировых рекордов.Срез только работает над последней строкой в файле, используя «с открытыми» и «readline»
Я использую следующий код (прямо сейчас у меня есть h1 через h4 комментировал, потому что она не возвращает ключи, которые находятся в моем словаре):
d1 = {'30': 0, '31': 1, '32': 2, '33' : 3, '34': 4, '35': 5, '36': 6, '37': 7, '38': 8, '39': 9,
'41': 'A', '42': 'B', '43': 'C', '44': 'D', '45': 'E', '46': 'F'}
filename = raw_input("Filename? > ")
with open(filename) as file:
for line in iter(file.readline, ''):
h1 = line[-8:-6]
h2 = line[-6:-4]
h3 = line[-4:-2]
h4 = line[-2:]
#h1 = d1[h1]
#h2 = d1[h2]
#h3 = d1[h3]
#h4 = d1[h4]
print h1,h2,h3,h4
Вот часть текстового файла я являюсь используя в качестве входных данных:
naa.60000970000192600748533031453442
naa.60000970000192600748533031453342
naa.60000970000192600748533031453242
naa.60000970000192600748533031453142
naa.60000970000192600748533031434442
naa.60000970000192600748533031434342
naa.60000970000192600748533031434242
naa.60000970000192600748533032363342
Когда я бегу мой сценарий, вот вывод, сгенерированный выше код:
В последней строке выглядит точно так же, как я ожидал бы. Все остальные строки были сдвинуты или сброшены символы. Я в недоумении за это ... Я пробовал много разных способов открыть файл на python, но не смог заставить их зациклиться или имел другие проблемы.
Есть ли простое исправление, которое я просто пропустил здесь? Спасибо, j
Это сработало отлично! Спасибо DSM. Мой выход теперь появляется как это (я положил h1 - 4 назад): Имя файла? > Luns.txt 3 4 A 0 3 4 B 0 ... Одна последняя вещь .... есть простой способ, чтобы удалить пробелы между 4 результатов? В настоящее время я печатаю их с этим утверждением: print h1, h2, h3, h4 Я пробовал h1 + h2 + h3 + h4, но он добавляет номера вверх, а не просто печатает их рядом друг с другом. – FooPlinger
Фактически выяснилось, что сейчас: print «VM ID ----% s VMAX Lun ---»% line, print '% s% s% s% s'% (h1, h2, h3, h4) VM ID ---- naa.60000970000192600748533031453142 VMAX Lun --- 1E1B – FooPlinger