擅长:python、mysql、java
<pre><code>data = {}
with open("data.txt",'r') as fh:
for line in fh.readlines(): #read in multiple lines
if len(line.strip())==0:
continue
if line.startswith('Sample Name'):
nameLine = line.strip()
name = nameLine.split(": ")[1]
data[name] = {}
else:
splitLine = line.split(":")
variableName = splitLine[0].strip()
value = splitLine[1].strip()
data[name][variableName] = value
print(data)
</code></pre>
<ol>
<li>确保你正在读的那行不是空的。如果将空行中的所有空格去掉,将得到一个长度为零的字符串。我们只是检查一下。你知道吗</li>
<li>如果该行以<code>Sample Name</code>开头,我们知道id将位于冒号和空格之后。我们可以用这些字符来划分。id将是分割行的第二部分,因此我们只得到索引1处的项。你知道吗</li>
<li>在变量中跟踪当前id(我称之为<code>name</code>)。为该id创建一个空的嵌套字典条目</li>
<li>如果该行不是ID行,则它必须是与上次输入的ID关联的数据行</li>
<li>我们得到这条线,把它除以<code>:</code>。变量的名称在左边,第一项在右边,值在右边,所以第二项在右边。一定要把两边多余的空间都去掉。你知道吗</li>
<li>将变量和值对添加到ID的字典条目中</li>
</ol>