编辑:这个问题已经解决了。我已经在这篇文章的底部添加了解决方案。在
我有两份文件,新闻报道.csv以及sortedBlad.csv. 在
在新闻报道.csv看起来像
SKU_IN,QTY_IN
3201MO-1,1
320205-1,4
在sortedBlad.csv看起来像
^{pr2}$我现在的密码通过了sortedBlad.csv并复制eid、sku和name列并将它们插入另一个文件中。它还匹配newStock中的sku并将它们附加到每行的末尾。我面临的问题是,我似乎无法从新库存中得到数量也被追加到每行的末尾。目前代码的输出如下。在
1.11E+11,3201MO-1,5,FORD FOCUS MK1 98 04 OIL SUMP PAN FOR ENGINE 1.8 16V 2.0 16V & ST RS PETROL,3201MO-1,,
1.21E+11,320205-1,6,FORD FOCUS 2004 2008 FRONT BUMPER RADIATOR GRILLE BONNET WITH CHROME TRIM,320205-1,,
您可以看到sku被追加到行的末尾。我还想在sku之后追加新库存数量。在
到目前为止,我得到的代码如下。在
import csv
test_file = "sortedBlad.csv"
test_file2 = "sortedNewStock.csv"
test_file2_array = []
finalFile = "final.csv"
csv_f_array = []
csv_file = csv.DictReader(open(test_file, 'r'), delimiter=',', quotechar='"')
csv_file2 = csv.DictReader(open(test_file2, 'r'), delimiter=',', quotechar='"')
with open(test_file2, 'rt') as a:
reader = csv.reader(a, delimiter=",")
for row in reader:
test_file2_array.append(row[0])
#print(test_file2_array)
file = open(finalFile, 'w')
for eachline in csv_file:
for SKU_IN in test_file2_array:
if SKU_IN == eachline['sku']:
print(SKU_IN+'-'+test_file2_array[1])
# why wont you write the qty?
file.write(eachline['eid']+','+eachline['sku']+','+eachline['QTY']+','+eachline['Name']+','+SKU_IN+','+',\n')
file.close
谢谢你们的回复。在reddit的learnpython irc中,我设法解决了这个问题。在
解决方案是使用字典将SKU_帴IN存储为键,将QTY_IN存储为值。当我写文件的时候就这么叫了。在
您只将
sortedNewStock.csv
(SKU_IN
)的第一列附加到test_file2_array
:您还需要从该文件中获取}:
^{2}$QTY_IN
列。我建议使用以下方法同时添加SKU_IN
和{然后改变
到
所以你的代码应该是这样的:
您没有将
QTY_IN
信息保存在newStock.csv
的任何地方。在您是否考虑过使用一个与表格数据集本机工作的包来支持您想要的操作—例如,pandas?在
合并功能将自动为您处理对齐。在
相关问题 更多 >
编程相关推荐