如何使用 Python 检索具有制表符格式的文件中的值?
Posted
技术标签:
【中文标题】如何使用 Python 检索具有制表符格式的文件中的值?【英文标题】:How to retrieve a value in a file with tab format using Python? 【发布时间】:2022-01-14 04:26:11 【问题描述】:我有一个格式如下的文件:
FileConfig
;
; Version: 4.0.0
; Date="2021/11/19"
;
Name
James
Number
1091125
Identifier
STDNT
Byte
7687aBap
ID
22SSWA
Program
*Internal
External
我想获取像 Name
, Number
等字符串的值。
我试过这种方式,但我只能得到所有的字符串。有没有办法通过初始化'Name'或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'
【讨论】:
嗨@alphaBetaGamma,谢谢,但我不需要像那样获取整个字典,我需要获取带有指定键的字典,例如我只需要@987654323 @和Number
我已经更新了答案,在keys列表中,你可以输入你需要的字段名称。以上是关于如何使用 Python 检索具有制表符格式的文件中的值?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 python 上使用正则表达式、开关和修剪来检索文件中的值?
如何上传Excel直接读取里面的数据,不用鎒xcel文件后再读取