擅长:python、mysql、java
<p>虽然你没有在你的问题中提供,我的水晶球告诉我,你试图读取一个csv文件的字段在任意顺序,并写回他们在一个特定的定义顺序。你知道吗</p>
<p>您可以使用<code>csv.DictReader</code>和<code>csv.DictWriter</code>来实现:</p>
<pre><code>with open('yourcsvfile.csv') as f:
cf = csv.DictReader(f)
</code></pre>
<p>这将解析头并为您提供一个对象,该对象将生成每个头部分指向一个值的dict-顺序无关紧要,因为您使用头名称本身来引用一个值:</p>
<pre><code> for row in cf:
print(row['collage'], row['place'], row['studentname'], row['branch'])
</code></pre>
<p>无论源文件中的顺序如何,每次都将按此特定顺序打印数据。注意,每个值不需要单独的变量,因为通过使用dict,可以将名称空间保持在<code>row</code>变量中。你知道吗</p>
<p>可以按头的特定顺序写回文件:</p>
<pre><code>with open('yourcsvfile.csv') as f:
cf = csv.DictReader(f)
with open('destination.csv', 'w') as fw:
cw = csv.DictWriter(fw, ['collage', 'place', 'studentname', 'branch'])
cw.writeheader()
cw.writerows(cf)
</code></pre>
<p>这段代码将以任何顺序读取一个头文件,但以代码中确定的特定顺序写回另一个文件。你知道吗</p>