擅长:python、mysql、java
<p>如果源数据是ch_源.txt,此脚本将创建_dst.txt文件以上面的格式。但在这个过程中会占用大量内存,因为在创建输出文件之前,必须存储所有数据。你知道吗</p>
<p>这是一个python2脚本。为了节省空间,python3脚本必须使用字节,并且将使用<code>items</code>而不是<code>iteritems</code>。你知道吗</p>
<p>通过进一步研究,您将了解如何在命令行上传递文件名,而不是将它们硬编码到脚本中。你知道吗</p>
<pre><code>#! /usr/bin/env python2
import collections
def translate(srcf, dstf):
by_chem = collections.defaultdict(list)
with open(srcf, 'rb') as f:
for line in f:
values = line.split()
if not values:
continue
soln = values.pop(0)
for chem in values:
by_chem[chem].append(soln)
with open(dstf, 'wb') as f:
for chem, solns in sorted(by_chem.iteritems()):
f.write('%s\t%s\n' % (chem, '\t'.join(solns)))
translate('ch_source.txt', 'ch_dst.txt')
</code></pre>