The thing is that sqlplus started life as a command-line reporting tool in the early days of Oracle. The reports had fixed-width data because they were for end-users and humans find fixed width format more convenient to read than csv or delimited data. Delimited data is good for exchanging between systems or applications, but not so good for humans.
Over the years, sqlplus wasn't improved to remedy this particular issue.
In the recent years, Oracle has developed another command-line tool that is kind of a bridge between command-line sqlplus and the graphical tool - SQL Developer. This tool is called "SQLcl" and is at this location: Oracle SQLcl
It's free, it's just a zip file that you extract anywhere you like and all it needs is at least JRE version 8. So, if you are willing to try out this tool and explore it, you will find that it provides a lot of functionality out of the box.
Here are a few commands from my session of SQLcl:
SQL>
SQL> show version
Oracle SQLDeveloper Command-Line (SQLcl) version: 4.2.0.17.073.1038
SQL>
SQL> -- csv format: technique 1
SQL>
SQL> select /*csv*/ * from scott.emp;
"EMPNO","ENAME","JOB","MGR","HIREDATE","SAL","COMM","DEPTNO"
7369,"SMITH","CLERK",7902,17-DEC-80,800,,20
7499,"ALLEN","SALESMAN",7698,20-FEB-81,1600,300,30
7521,"WARD","SALESMAN",7698,22-FEB-81,1250,500,30
7566,"JONES","MANAGER",7839,02-APR-81,2975,,20
7654,"MARTIN","SALESMAN",7698,28-SEP-81,1250,1400,30
7698,"BLAKE","MANAGER",7839,01-MAY-81,2850,,30
7782,"CLARK","MANAGER",7839,09-JUN-81,2450,,10
7788,"SCOTT","ANALYST",7566,19-APR-87,3000,,20
7839,"KING","PRESIDENT",,17-NOV-81,5000,,10
7844,"TURNER","SALESMAN",7698,08-SEP-81,1500,0,30
7876,"ADAMS","CLERK",7788,23-MAY-87,1100,,20
7900,"JAMES","CLERK",7698,03-DEC-81,950,,30
7902,"FORD","ANALYST",7566,03-DEC-81,3000,,20
7934,"MILLER","CLERK",7782,23-JAN-82,1300,,10
14 rows selected.
SQL>
SQL> -- csv format: technique 2
SQL>
SQL> set sqlformat delimited ,
SQL>
SQL> -- now all queries will return data in csv format
SQL>
SQL> select * from scott.emp;
"EMPNO","ENAME","JOB","MGR","HIREDATE","SAL","COMM","DEPTNO"
7369,"SMITH","CLERK",7902,17-DEC-80,800,,20
7499,"ALLEN","SALESMAN",7698,20-FEB-81,1600,300,30
7521,"WARD","SALESMAN",7698,22-FEB-81,1250,500,30
7566,"JONES","MANAGER",7839,02-APR-81,2975,,20
7654,"MARTIN","SALESMAN",7698,28-SEP-81,1250,1400,30
7698,"BLAKE","MANAGER",7839,01-MAY-81,2850,,30
7782,"CLARK","MANAGER",7839,09-JUN-81,2450,,10
7788,"SCOTT","ANALYST",7566,19-APR-87,3000,,20
7839,"KING","PRESIDENT",,17-NOV-81,5000,,10
7844,"TURNER","SALESMAN",7698,08-SEP-81,1500,0,30
7876,"ADAMS","CLERK",7788,23-MAY-87,1100,,20
7900,"JAMES","CLERK",7698,03-DEC-81,950,,30
7902,"FORD","ANALYST",7566,03-DEC-81,3000,,20
7934,"MILLER","CLERK",7782,23-JAN-82,1300,,10
14 rows selected.
SQL>
That was the easier method because it requires minimum effort on your part.
If you must use sqlplus, then you could use rbatte1's suggestions - use column formats for every column that you will be using, or use a two-step process where you spool the data as it is now and then use a scripting language or command to replace "<multiple_spaces>," by ",". The latter technique is a hit-or-miss because your data itself could have "<multiple_spaces>,".
Finally, the method that would require the most effort on your part would be to handcraft all your queries and concatenate all columns by commas. Something like the following in my sqlplus session:
SQL>
SQL> set feedback off
SQL> set pagesize 0
SQL>
SQL> select empno ||','|| ename ||','|| job ||','|| mgr ||','|| hiredate ||','|| sal ||','|| comm ||','|| deptno from scott.emp;
7369,SMITH,CLERK,7902,17-DEC-80,800,,20
7499,ALLEN,SALESMAN,7698,20-FEB-81,1600,300,30
7521,WARD,SALESMAN,7698,22-FEB-81,1250,500,30
7566,JONES,MANAGER,7839,02-APR-81,2975,,20
7654,MARTIN,SALESMAN,7698,28-SEP-81,1250,1400,30
7698,BLAKE,MANAGER,7839,01-MAY-81,2850,,30
7782,CLARK,MANAGER,7839,09-JUN-81,2450,,10
7788,SCOTT,ANALYST,7566,19-APR-87,3000,,20
7839,KING,PRESIDENT,,17-NOV-81,5000,,10
7844,TURNER,SALESMAN,7698,08-SEP-81,1500,0,30
7876,ADAMS,CLERK,7788,23-MAY-87,1100,,20
7900,JAMES,CLERK,7698,03-DEC-81,950,,30
7902,FORD,ANALYST,7566,03-DEC-81,3000,,20
7934,MILLER,CLERK,7782,23-JAN-82,1300,,10
SQL>
SQL>