작은 파이썬 스크립트를 사용하여 작업 속도를 높이고 작은 스크립트 작업을 수행하려고합니다.하지만 원하는대로 작동하지 않습니다. 여기에 현재 코드는 다음과 같습니다CSV 코드가 루핑되지 않습니다.
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
의사 코드는 다음과 같습니다
- 파일 열기 하나와 파일이 에 열 2
- 체크 값에 대해이 값을 열 하나에서 모든 값을 저장
- 일치하는 항목을 찾으면 (이 작업을 수행하면 부분 일치도 찾습니다.) 파일 3에 행을 복사하십시오.
- 의 다음 값으로 이동하지 않으면및 반복
skusToCheck
나는 33-40 줄을 루프로 만들 수 없다. 첫 번째 값을 확인하고 두 번째 파일에서 일치 항목을 찾지 만 다음 값인 skusToCheck
으로 이동하지 않습니다.
당신은 다시 설정해야 할 경우 각각의 단일
sku
가 ALLACTIVE의 행의 모든 일치되는이 검사를, 즉 jonrsharpe 최초의 코멘트에서 힌트를 따라에 while 루프를 수정해야 'while' loop * 내에서'i = 0' * 또는 더 나은 방법은 skusToCheck :'에서 sku를 사용하는 것입니다. – jonrsharpe
루프를 다시 초기화하면 어떻게 그 위치를 추적 할 수 있습니까? 내가 프로그램을 사용하여 어디 배열을 추적 할 수 있습니다. – Izz
당신은 분명히 할 수 있습니다 - 당신은 모든 라인에 대해 모든 SKU를 확인 하시겠습니까, 아니면 파일에서와 같은 순서로 나타나는 것들만 확인 하시겠습니까? 그리고 "* 그것이 어디에 있느냐"*라는 것을 당신은 무엇을 의미합니까? (죄송합니다, 그건'for' 루프를 읽었어야합니다.) – jonrsharpe