Я пытаюсь создать небольшой скрипт Python, чтобы ускорить работу на рабочем месте и иметь небольшой рабочий сценарий, но он не работает так, как я этого хочу. Вот текущий код:CSV code not looping
import re
import csv
#import pdb
#pdb.set_trace()
# Variables
newStock = "newStock.csv" #csv file with list of new stock
allActive = "allActive.csv" #csv file with list of all active
skusToCheck= []
totalNewProducts = 0
i = 0
# Program Start - Open first csv
a = open(newStock)
csv_f = csv.reader(a)
# Copy each row into array thingy
for row in csv_f:
skusToCheck.append(row[0])
# Get length of array
totalNewProducts = len(skusToCheck)
# Open second csv
b = open(allActive)
csv_f = csv.reader(b)
# Open blank csv file to write to
csvWriter = csv.writer(open('writeToMe.csv', 'w'), delimiter=',', quotechar='|', quoting=csv.QUOTE_MINIMAL)
# Check first value in first row,first file against each entry in 2nd row in second file
with open(allActive, 'rt') as b:
reader = csv.reader(b, delimiter=",")
for row in reader:
if skusToCheck[i] == row[1]:
print(skusToCheck[i]) # output to screen for debugging
print(row) # debugging
csvWriter.writerow(row) #write matching row to new file
i += 1 # increment where we are in the first file
Псевдо код будет:
- Открыть файл один и сохранить все значения из столбца одной в
skusToCheck
- Проверьте это значение от значений в столбце 2 в файле 2
- Если он найдет совпадение (как только у меня будет эта работа, я хочу, чтобы он тоже искал частичные совпадения), скопируйте строку в файл 3
- Если не перейти на следующее значение в
skusToCheck
и повторить
Кажется, я не могу получить линии 33 - 40 в петлю. Он проверит первое значение и найдет совпадение во втором файле, но не переместится на следующее значение с skusToCheck
.
Вам нужно сбросить 'i = 0' * внутри цикла while, или, лучше, используйте' для sku в skusToCheck: '. – jonrsharpe
Если я сброшу его в цикле, как он будет отслеживать, где он? Я использую i для отслеживания, где в массиве находится программа. – Izz
Не могли бы вы уточнить - хотите ли вы проверить каждый SKU на каждую строку или только те, которые отображаются в том же порядке, что и в файле? И что вы подразумеваете под * «отслеживать, где это» *? (Извините, это должно было прочитать цикл 'for'.) – jonrsharpe