#python #string #file #object
#питон #строка #файл #объект
Вопрос:
У меня есть файл в этом формате:
FileConfig ; ; Version: 4.0.0 ; Date="2021/11/19" ; Name James Number 1091125 Identifier STDNT Byte 7687aBap ID 22SSWA Program *Internal External
Я хочу получить значение строки , например Name
, Number
и т. Д. Я пробовал этот способ, но мне удалось получить только всю строку. Есть ли какой-либо способ получить конкретное значение, инициализировав » Имя » или Number
.
file1 = open("myfile.log", "r") print(file1.readlines())
Мое ожидание, что я смогу получить ценность таким образом:
file1.readlines(Name)
Я действительно благодарен за помощь. Я новичок в Python. Огромное спасибо
Ответ №1:
Я попытался сохранить информацию, которая вас касается, в словарь, и эта логика основана на файле, которым вы поделились :
count = 0 key = 0 dic = dict() key_counter = 1 keys = ["Name","Number"] with open("file.log") as fp: Lines = fp.readlines() for line in Lines: count = 1 if "FileConfig" in line.strip() or ";" in line.strip(): pass elif key_counter == 1 and line[0] != " ": key_counter = 2 key= line.strip() if key in keys: dic[line.strip()] =0 elif key_counter == 1 and line[0] == " ": key_counter = 1 if key in keys: val = dic.get(key) if isinstance(val, list): val.append(line.strip()) dic[key] =val else: dic[key] = [val,line.strip()] elif key_counter == 2: if key in keys: dic[key] = line.strip() key_counter = 1 dic
выход:
{'Name': 'James', 'Number': '1091125'}
Комментарии:
1. Привет @alphaBetaGamma, спасибо, но мне не нужно получать весь словарь таким образом, мне нужно получить словарь с указанием ключа, для примера мне просто нужно
Name
иNumber
2. Я обновил ответ, в списке ключей вы можете указать имена нужных вам полей.