为我的for循环的每次迭代创建唯一的CSV文件

时间:2018-11-07 20:02:20

标签: python file for-loop string-formatting

使用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 :(得分:5)

您没有为client的通话提供任何使用位置。

.format()

您可以阅读有关Python here中的字符串格式的信息。

答案 1 :(得分:0)

只需将您的open语句更改为客户端名称的格式:

with open('/sales_%s.csv'%client, 'wt') as outfile: