擅长:python、mysql、java
<p>您需要确保检测到空行(相当于双换行)。下面是如何使用列表理解来完成此操作:</p>
<pre><code>with open("file.txt", "rt") as r:
contents = r.read()
dicts = [
dict(
line.split(" ", 1)
for line in block.split("\n")
)
for block in contents.strip().split("\n\n")
]
dicts
# => [{'value1': 'value10', 'value2': 'value20', 'value3': 'value30'}, {'var1': 'var10', 'var2': 'var20', 'var3': 'var30'}]
</code></pre>
<p>我接收整个文件,打算手动拆分行。首先删除最外层的换行符(如果有的话),然后在内部的双换行符上拆分。这会产生块;按换行符拆分这些行可以生成行,这些行可以按空格拆分以生成键和值。块的所有键值对都被送入<code>dict</code>构造函数</p>
<p>与您所做的更接近:</p>
<pre><code>current = {}
dicts = []
for line in file:
items = line.split(" ", 1)
if len(items) == 2:
current[items[0]] = items[1]
else:
dicts.append(current)
current = {}
if current:
dicts.append(current)
</code></pre>