If you want to create the csv locally, then you could use SQL Developer's CSV export functionality. Or you could write a script to spool it from SQL Dev, SQL*Plus or SQLcl.
SQL Dev and SQLcl both support the /*csv*/ comment to automatically format the result of a query as csv:
with rws as (
select rownum r, dbms_random.string('a', 10) s from dual connect by level <= 10
)
select /*csv*/* from rws;
"R","S"
1,"LXbfQqpnAP"
2,"mZRCpBKRIl"
3,"YGafpGmjuA"
4,"hIIBZSKkjG"
5,"RCdnOrIEQk"
6,"pNJaPBeNOL"
7,"rXwJRMrcnY"
8,"HbUmZmxikF"
9,"rbwEaxJnPn"
10,"eCHfPiPVQB"
10 rows selected