Here is the oracle sql script that can be used to create user from the data dictionary :

Copy the following script content to generate_create_user.sql file

accept username prompt 'Enter Username : '
--spool &&outfile..gen
spool cre_usr_&&username..sql

SET LONG 100000 PAGESIZE 0 head off verify off feedback off linesize 132
exec dbms_metadata.set_transform_param(dbms_metadata.SESSION_TRANSFORM,'SQLTERMINATOR',TRUE);
SELECT dbms_metadata.get_ddl('USER','&&username') FROM dual
UNION ALL
SELECT DBMS_METADATA.GET_GRANTED_DDL('SYSTEM_GRANT','&&username') from dual
UNION ALL
SELECT DBMS_METADATA.GET_GRANTED_DDL('ROLE_GRANT','&&username') from dual;
UNION ALL
SELECT DBMS_METADATA.GET_GRANTED_DDL('OBJECT_GRANT','&&username') from dual;

spool off

Note: You might have to remove extra carriage returns from the script .