擅长:python、mysql、java
<p>您可以使用记录之间的空行来表示记录结束。然后逐行处理输入文件并构造字典列表。最后将字典写入CSV文件。在</p>
<pre><code>from csv import DictWriter
from collections import OrderedDict
with open('input') as infile:
registrations = []
fields = OrderedDict()
d = {}
for line in infile:
line = line.strip()
if line:
key, value = [s.strip() for s in line.split(':', 1)]
d[key] = value
fields[key] = None
else:
if d:
registrations.append(d)
d = {}
else:
if d: # handle EOF
registrations.append(d)
# fieldnames = ['Name', 'Email', 'Cluster Name', 'Contact No.', 'Coming', 'Members Participating']
fieldnames = fields.keys()
with open('registrations.csv', 'w') as outfile:
writer = DictWriter(outfile, fieldnames=fields)
writer.writeheader()
writer.writerows(registrations)
</code></pre>
<p>此代码尝试自动收集字段名,并将使用与在输入中首次看到唯一键相同的顺序。如果在输出中需要特定的字段顺序,可以通过取消对相应行的注释来完成。在</p>
<p>在示例输入上运行此代码会产生以下结果:</p>
^{pr2}$