擅长:python、mysql、java
<p>试试这个:</p>
<pre><code>from __future__ import with_statement
import csv
def twiddle_csv(file1, file2):
def mess_with_record(record):
record['90mdist'] = 2 * int(record['90mdist']) + 30
with open(file1, "r") as fin:
with open(file2, "w") as fout:
fields = ['ID', 'transect', '90mdist']
reader = csv.DictReader(fin, fieldnames=fields)
writer = csv.DictWriter(fout, fieldnames=fields)
fout.write(",".join(fields) + '\n')
reader.next() # Skip the column header
for record in reader:
mess_with_record(record)
writer.writerow(record)
if __name__ == '__main__':
twiddle_csv('file1', 'file2')
</code></pre>
<p>有几个注意事项:</p>
<ul>
<li>听写器似乎使用第一行
作为数据,即使它与
领域。调用reader.next()跳过。</li>
<li>数据行不能有尾随逗号。它们将被解释为空列。</li>
<li>DictWriter似乎没有写出列标题。自己动手做。</li>
</ul>