import csv
import sys
source = csv.DictReader(open('source.csv'))
export = csv.DictReader(open('export.csv'))
sys.stdout = open('output.csv','w')
val = 0
def output():
for row in source:
val = row['SKU']
for row in export:
if row['SKU'] == val:
print '"' + row['SKU'] + '"' + ',' + '"' + row['DESC'] + '"' + ',' + '"' + row['COST'] + '"' + ',' + '"' + row['MSRP'] + '"' + ',' + '"' + row['CORE'] + '"' + ',' + '"' + row['WEIGHT'] + '"' + ',' + '"' + row['HEIGHT'] + '"' + ',' + '"' + row['LENGTH'] + '"' + ',' + '"' + row['WIDTH'] + '"'
else:
continue
output()
Это захватывает только первый SKU в исходном файле. И не для всех 15000 skus в исходном файле. Форматирование правильное. Поскольку это построено на коде, который функционирует для фильтрации, используя информацию только из файла экспорта, (без источника csv), я упал, так как моя проблема находится во втором цикле, я недостаточно разбираюсь в ней, чтобы устранить ее.Python Для цикла только один раз на CSV
Вы не можете перебирать файлы снова и снова, нет, потому что, как только позиция чтения дойдет до конца, вы не сможете прочитать больше. Вам придется явно поставить позицию чтения на 0. Но это очень плохой и медленный метод. –