回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>嗨,我正在尝试创建一个新的CSV文件从合并的特定字段在两个CSV文件基于一个公共列或主键。我尝试过在powershell中做同样的事情,它很有效,但是完成过程非常慢-合并5000多行文件需要30多分钟,所以在Python中尝试了这个过程。我是新来的,所以请对我从容不迫。在</p>
<p>所以有两个文件填充.csv以及检查文件.csv在输出文件中创建的列将基于中的列填充.csv. 代码检查中的值检查文件.csv,创建输出文件.csv,从中复制列填充.csv需要根据中的相应值重写两个字段的值checkfile.com网站. 以下是细节</p>
<p>在填充.csv-在</p>
<pre><code>"StockNumber","SKU","ChannelProfileID","CostPrice"
"10m_s-vid#APTIIAMZ","2VV-10",3746,0.33
"10m_s-vid#CSE","2VV-10",3746,0.98
"1RR-01#CSE","1RR-01",3746
"1RR-01#PCAWS","1RR-01",3746,
"1m_s-vid_ext#APTIIAMZ","2VV-101",3746,0.42
</code></pre>
<p>在检查文件.csv在</p>
^{pr2}$
<p>在输出文件.csv我得到的是-</p>
<pre><code>StockNumber,SKU,ChannelProfileID,CostPrice
10m_s-vid#APTIIAMZ,2VV-10,"(' ',)",
10m_s-vid#CSE,2VV-10,"(' ',)",
1RR-01#CSE,1RR-01,"(' ',)",
1RR-01#PCAWS,1RR-01,"(' ',)",
1m_s-vid_ext#APTIIAMZ,2VV-101,"(' ',)",
</code></pre>
<p>但是输出文件.csv我需要的是-</p>
<pre><code>StockNumber,SKU,ChannelProfileID,CostPrice
10m_s-vid#APTIIAMZ,2VV-10,1991,0.86
10m_s-vid#CSE,2VV-10,1991,0.86
1RR-01#CSE,1RR-01
1RR-01#PCAWS,1RR-01
1m_s-vid_ext#APTIIAMZ,2VV-101
</code></pre>
<p>最后密码-</p>
<pre><code>import csv
with open('checkfile.csv', 'rb') as checkfile:
checkreader = csv.DictReader(checkfile)
product_result = dict(
((v['ProductCode'], v[' Stock']), (v['ProductCode'], v[' CostPrice'])) for v in checkreader
)
with open('infile.csv', 'rb') as infile:
with open('outfile.csv', 'wb') as outfile:
reader = csv.DictReader(infile)
writer = csv.DictWriter(outfile, reader.fieldnames)
writer.writeheader()
for item in reader:
result = product_result.get(item['SKU'], " ")
item['ChannelProfileID'] = result,
item['CostPrice'] = result
writer.writerow(item)
</code></pre>