def findLineParam(sprotParam, pos):
if line[:2] == sprotParam:
start = pos
while line[start] == " ":
start += 1
stop = start + 1
while stop < len(line) and not line[stop] in (" ", ";"):
stop += 1
print(line[start:stop]) # prints the correct value!
return line[start:stop] # returns None?
Чтобы кратко объяснить функцию кода, это то, что он должен взять входную строку (ключевое слово), например, «ID», и найти это в строке в текстовом файле, тогда он должен найти первое значение после пробела.чтение следующего "" или ";"и верни это.Я вижу, что когда я печатаю строку, она возвращает именно то, что я хочу, но когда я ее возвращаю, она возвращает «Нет».
Всякий раз, когда я заменяю «sprotParam» на список ввода вместо (* sprotParam), он возвращает значения, но также равное количество «None», соответствующее строкам в файле, что, как я считаю, указывает на то, чтоон выполняет итерации и выполняет операции со всеми строками, чего не следует делать.
Код, вызывающий функцию
try:
file = input("Enter filename: ")
except IOError as e:
print("That is not a recognised filename. Error given: " + str(e))
sys.exit(1) # Close the program
with open(file, 'r') as infile:
for line in infile:
ident = findLineParam("ID", 2)