Я понимаю, что этот код крайне неэффективен.Для разбора файла вызова функции цикла
У меня здесь полная потеря, и я планирую удалить эту функцию и просто сделать код процедурным в основном. Но я надеюсь, что кто-то сможет объяснить, что я здесь вижу. Цикл в main() запускается и вызывает matchName(). matchName() выполняет его цикл тогда, когда он должен вернуться для следующего «vtRow», вместо этого он просто прекращает выполнение. Таким образом, выход является первой записью vtData и каждой записи из adData.
import csv, re
def main():
#1st word
oneWord = re.compile('\A([\w]+)')
#1st 3
first3 = re.compile('\A([\w]{3})')
#last 3
last3 = re.compile('(?=([\w]{3})$)')
mArray = [ oneWord, first3, last3 ]
adFile = open('adData.csv', 'rb')
adFields = ('lName','fName','cNum','addy','city','state','zip','phone','sex')
adData = csv.reader(adFile, dialect='excel')
vtFile = open('data360.csv','rb')
vtFields = ('ref','fName','lName')
vtData = csv.reader(vtFile, dialect='excel')
for vtRow in vtData:
matchName(vtRow, adData, mArray) # appears that this runs once and exits
def matchName(curVtRow, adData, mArr):
lName = curVtRow[4].lower()
fName = curVtRow[3].lower()
Posib = []
for row in adData:
cName = row[0].lower()
print "vt " + lName + " ; ad " + cName
return 1
if __name__ == "__main__":
main()
Какая линия останавливается? Не могли бы вы пометить его в коде? Показать ввод и вывод? – Marcin
он выходит изящно в matchname (vtRow, adData, mArray) – Brian