<p>下面是一种纯python方法,它用<a href="https://docs.python.org/3/library/csv.html#csv.DictReader" rel="nofollow noreferrer">^{<cd2>}</a>读取主<code>.csv</code>文件,匹配ID,并用<a href="https://docs.python.org/3/library/csv.html#csv.DictWriter" rel="nofollow noreferrer">^{<cd4>}</a>将文件数据附加到新的或现有的<code>.csv</code>文件中:</p>
<pre><code>from csv import DictReader
from csv import DictWriter
from os.path import isfile
def export_csv(user_id, master_csv, fieldnames, key_id, extension=".csv"):
filename = user_id + extension
file_exists = isfile(filename)
with open(file=master_csv) as in_file, open(
file=filename, mode="a", newline=""
) as out_file:
# Create reading and writing objects
csv_reader = DictReader(in_file)
csv_writer = DictWriter(out_file, fieldnames=fieldnames)
# Only write header once
if not file_exists:
csv_writer.writeheader()
# Go through lines and match ids
for line in csv_reader:
if line[key_id] == user_id:
# Modify line and append to file
line = {k: v.strip() for k, v in line.items() if k in fieldnames}
csv_writer.writerow(line)
</code></pre>
<p>可以这样称呼:</p>
<pre><code>export_csv(
user_id="KTD684",
master_csv="master.csv",
fieldnames=["Date", "Prj1_Assigned", "Prj1_closed", "Prj2_assigned", "Prj2_solved"],
key_id="ID",
)
</code></pre>
<p>并生成以下<em>KTD684.csv</em>:</p>
<pre><code>Date,Prj1_Assigned,Prj1_closed,Prj2_assigned,Prj2_solved
08-Nov-2016,946,948,na,na
</code></pre>