<p>您可以使用以下方法,首先构建一个空列表,然后将任何现有条目分配到其中,然后再将它们作为行写入输出:</p>
<pre><code>import csv
import itertools
with open('add_missing.txt', 'rb') as f_input, open('missing_test.txt', 'wb') as f_output:
csv_input = csv.reader(f_input, delimiter='\t', skipinitialspace=True)
csv_output = csv.writer(f_output, delimiter='\t')
csv_output.writerow(next(csv_input))
for k, g in itertools.groupby(csv_input, lambda x: x[0]):
empty = [[k, x * 10000, 10000, 0] for x in range(1, 9)]
for row in g:
empty[int(row[1]) / 10000 - 1] = row
csv_output.writerows(empty)
</code></pre>
<p>给你:</p>
<pre class="lang-none prettyprint-override"><code>indiv window coverage SNP
BABA_1 10000 10000 0
BABA_1 20000 10000 7
BABA_1 30000 10000 1
BABA_1 40000 10000 0
BABA_1 50000 10000 2
BABA_1 60000 10000 3
BABA_1 70000 10000 0
BABA_1 80000 10000 1
BABA_10 10000 10000 0
BABA_10 20000 10000 1
BABA_10 30000 10000 16
BABA_10 40000 10000 0
BABA_10 50000 10000 0
BABA_10 60000 10000 0
BABA_10 70000 10000 0
BABA_10 80000 10000 9
</code></pre>