Я хочу иметь петлю в моей основной .py, которая вызывает модуль, который откроет файл и вернет строку из файла, тогда я хочу выполнить логику на указанную строку в основном коде, затем спросите модуль для следующей строки. На этом этапе мой код возвращает одну и ту же строку снова и снова до тех пор, пока EOF и я не уверен, как исправить.Вызов вызывающего модуля для чтения строк из файла с использованием Python 3
Основной код:
fwname = input('Please enter the file name (case sensitive): ')
readline = HexFileParser.ParseHex(fwname)
for line in readline:
#perform some logic
print (readline)
модуль (HexFileParser):
def ParseHex(filelocation):
fwfile = open("C:\\Path\\"+filelocation,'r')
line = fwfile.readline()
endstring = ":00000001FF"
for line in fwfile:
if line.find(endstring) == -1:
return line.lstrip(':')
else:
break
Спасибо!
В качестве побочного примечания 'if endstring not in line' является более простым (и, возможно, даже более быстрым, иногда) способом делать' if line.find (endstring) == -1'. Не используйте 'find', если вам не нужно знать позицию. – abarnert
Hexparser должен открыть файл и вернуть каждую строку, чтобы я мог кодировать шестую строку в двоичный код в моем основном коде. Мне нравится, что это отдельный файл, который я могу назвать, потому что в конце концов у меня будет несколько разных файлов прошивки, которые я хочу проанализировать и отправить обратно в основной код для перевода в двоичный файл. Я изменю код, чтобы больше не использовать find, спасибо за этот совет. –