Python csv reader: как подключить вывод к другому скрипту с помощью командной строки

У меня есть 2 сценария, картограф и редуктор. Оба берут ввод от считывателя csv. Сценарий сопоставления должен принимать свои данные из текстового файла с разделителями табуляции, dataset.csv, входной сигнал редуктора должен быть выходным для устройства отображения. Я хочу сохранить выход редуктора в текстовый файл output.txt. Какая правильная цепочка команд для этого?

картограф:

#/usr/bin/python import sys, csv reader = csv.reader(sys.stdin, delimiter='\t') writer = csv.writer(sys.stdout, delimiter='\t', quotechar='"', quoting=csv.QUOTE_ALL) for line in reader: if len(line) > 5: # parse only lines in the forum_node.tsv file if line[5] == 'question': _id = line[0] student = line[3] # author_id elif line[5] != 'node_type': _id = line[7] student = line[3] # author_id else: continue # ignore header print '{0}\t{1}'.format(_id, student) 

редуктор:

 #/usr/bin/python import sys, csv reader = csv.reader(sys.stdin, delimiter='\t') writer = csv.writer(sys.stdout, delimiter='\t', quotechar='"', quoting=csv.QUOTE_ALL) oldID = None students = [] for line in reader: if len(line) != 2: continue thisID, thisStudent = data if oldID and oldID != thisID: print 'Thread: {0}, students: {1}'.format(oldID, ', '.join(students)) students = [] thisID = oldID students.append(thisStudent) if oldID != None: print 'Thread: {0}, students: {1}'.format(oldID, ', '.join(students)) 

Соедините файлы вместе:

 python mapper.py < dataset.csv | python reducer.py > output.txt 

< dataset.csv дает mapper.py CSV-файл на stdin и | перенаправляет stdout на другую оценку. Эта другая команда – python reducer.py , а > output.txt подключает stdout из этого сценария к `output.txt.