Я пишу очень простой скрипт на Python, чтобы ПРОЧИТАТЬ CSV (без проблем) и написать в другой CSV (проблема):
Информация о системе:
- Windows 10
- Powershell
- Python 3.6.5 :: Anaconda, Inc.
Цель состоит в том, чтобы отфильтровать события на основе критериев и записать их в другой CSV с требуемыми критериями.
Например:
Я хотел бы прочитать из этого CSV и записать события, в которых число регистраций (или столбец 4) больше 0 (удалить строки с регистрациями = 0)
# SCRIPT TO FILTER EVENTS TO BE PROCESSED
import os
import time
import shutil
import os.path
import fnmatch
import csv
import glob
import pandas
# Location of file containing ALL events
path = r'allEvents.csv'
# Writes to writer
writer = csv.writer(open(r'RegisteredEvents' + time.strftime("%m_%d_%Y-%I_%M_%S") + '.csv', "wb"))
writer.writerow(["Event Name", "Start Date", "End Date", "Registrations", "Total Revenue", "ID", "Status"])
#writer.writerow([r'Event Name', r'Start Date', r'End Date', r'Registrations', r'Total Revenue', r'ID', r'Status'])
#writer.writerow([b'Event Name', b'Start Date', b'End Date', b'Registrations', b'Total Revenue', b'ID', b'Status'])
def checkRegistrations(file):
reader = csv.reader(file)
data = list(reader)
for row in data:
#if row[3] > str(0):
if row[3] > int(0):
writer.writerow(([data]))
Ошибка, которую я продолжаю получать:
writer.writerow(["Event Name", "Start Date", "End Date", "Registrations", "Total Revenue", "ID", "Status"])
TypeError: a bytes-like object is required, not 'str'
Я пытался использовать различные закомментированные утверждения
Например:
- "" против r "" против r '' против b ''
if row[3] > int(0) **vs** if row[3] > str(0)
Каждый раз, когда я выполняю свой сценарий, он создает файл ... поэтому первая строка csv writer работает (создать и открыть файл) ... вторая строка (для записи заголовков) - это когда появляется ошибка ...
Возможно, я путаюсь с синтаксисом из-за версий Python, или, возможно, я неправильно использую библиотеку CSV, или (более чем вероятно) я бесконечно узнаю о типе ввода-вывода и преобразовании данных ... кто-то, пожалуйста, помогите !!
Мне известно о избытке библиотек импорта - скрипт пришел из другого базового скрипта для перемещения файлов из одного места в другое на основе имени файла и вывода счетчика строк для каждого перемещаемого файла.
С учетом вышесказанного, я могу не знать о каких-либо отсутствующих / необходимых библиотеках
Пожалуйста, дайте мне знать, если у вас есть какие-либо вопросы, проблемы или разъяснения
Заранее спасибо!