我正在读取一个文件,每行有一个标记,后跟一个冒号,然后是我想要的信息。一个样本文件看起来像
Package: com.something.something
Section: Utilities
Name: Something
等等,(如果你想知道的话,这是一个apt包索引)
所以我想循环遍历每一行,看看该行是否以列表中的元素开始。我在想
PkgInfo={}
Tags=['Package', 'Section', 'Name']
for line in reader.readlines()
if line.startswith(element in Tags):
PkgInfo[element]=line.split(': ')[1]
这段代码不起作用,但希望你能理解我的意图。我怎样才能完成这件事?
基于split()的所有解决方案的问题是,如果冒号出现多次,它们可能会中断。这不太优雅,但更结实:
试试这个:
逻辑稍有不同的工作解决方案:
并注意这样一个事实:元素上的迭代不仅仅是一个问题在
Tags
中的Package'被定义为'Package:',Tags
在循环中被引用为tags
,split.line
而不是line.split()
,值不会被剥离。相关问题 更多 >
编程相关推荐