Создайте уникальные CSV, названные для каждой итерации цикла for - PullRequest
0 голосов
/ 07 ноября 2018

Используя Python для выполнения серии SQL-запросов, и хотелось бы, чтобы выходные данные каждой итерации моего запроса экспортировались как его собственный CSV-файл.

Например:

clients = ['Ellen','Jose','Tina']

for client in clients:
    print(client)
    with open('/sales.csv', 'wt') as outfile:
        dw=csv.writer(outfile)
        dw.writerow(['index', 'client','product','sales'])
    query = """
    SELECT '{}' as client, 
       product,
       COUNT(1) AS sales
  FROM datasource
  GROUP BY 1, 2
  ORDER BY 3 DESC 
  LIMIT 100""".format(market,market)
    with open('sales.csv'.format(client,client), 'w') as output:
      output.write(client)

Мне нужно имя файла скажем sales_ellen.csv, sales_jose.csv - я знаю, что это не так (он добавляет каждый файл в файл sales.csv). спасибо

Ответы [ 2 ]

0 голосов
/ 07 ноября 2018

Просто измените ваш оператор open на формат имени клиента:

with open('/sales_%s.csv'%client, 'wt') as outfile:
0 голосов
/ 07 ноября 2018

Вы не предоставляете место для client, которое будет использоваться при вызове .format().

fname = 'sales_{}.csv'.format(client)
with open(fname, 'w') as output:
    ...

Вы можете прочитать о форматировании строки в Python здесь .

...