<P>在这个问题上花了更多的时间,得到了一个解决方案,它看起来是“强>不<强”>“Python”,因为我的代码处理第一个“记录”(8行数据,包括底部的空白行)是其余的冗余。你知道吗</p>
<pre><code>import itertools
data = {}
with open("vcfstats.txt", 'r') as f:
for line in f:
if line.strip(): #Non blank line
if line.startswith('Sample Name'):
nameLine = line.strip()
name = nameLine.split(": ")[1].strip()
data[name] = {}
else:
splitLine = line.split(": ")
variableName = splitLine[0].strip()
values = splitLine[1].strip().split(" ")
data[name][variableName] = values[0] #Only take the first item as value
else:
continue
for line in itertools.islice(f, 8):
lines = (line.rstrip() for line in f) # including blank lines
lines = list(line for line in lines if line) # skip blank lines
for line in lines:
if line.startswith('Sample Name'):
nameLine = line.strip()
name = nameLine.split(": ")[1].strip()
data[name] = {}
else:
splitLine = line.split(": ")
variableName = splitLine[0].strip()
values = splitLine[1].strip().split(" ")
data[name][variableName] = values[0] #Only take the first item as value
</code></pre>
<p>我错过了什么?谢谢!你知道吗</p>