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))
- Mac psql / readline – библиотека не загружена
- Передача словарей в скрипт Python через командную строку
- -s означает простой английский
- Получить нерасширенный аргумент из командной строки bash
- Как передать аргументы командной строки при использовании ideone?
Соедините файлы вместе:
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.
- Получить путь к текущему TTY в Python
- Перенаправить вывод интерактивных команд python / ipython в файлы или переменные
- Python: как запускать тесты, выполненные с помощью unittest
- Отсутствует аргумент argpse в python 3
- Python sys.argv вне диапазона, не понимаю, почему
- Лучшая практика для рекурсивного консольного инструмента в Python
- Как флаг -m отличается между Python 2 и 3?
- Есть ли библиотека Python, которая облегчает создание утилит CLI, таких как команды управления Django?
- Могу ли я передать «\ t» на python из командной строки?