To overwrite outputs, set arcpy.env.overwriteOutput = True.
overwriteOutput (Read and Write) | Controls whether tools will automatically overwrite any existing output when run. When set to True, tools will execute and overwrite the output dataset. When set to False, existing outputs will not be overwritten, and the tool will return an error. | Boolean |
env—Help | ArcGIS Desktop
You could do this using Excel To Table to convert the Excel sheet to a table, then Table To Table to convert the table to a CSV.
In my testing the output CSV always had an OID field added to it, so I used the pandas library to drop the OID field.
import arcpy
import pandas as pd
arcpy.env.overwriteOutput = True
excel_file = r"C:\Users\Username\Desktop\test_book.xlsx"
interm_table = r"C:\Users\Username\Documents\ArcGIS\Default.gdb\test_book"
arcpy.ExcelToTable_conversion(excel_file, interm_table, "Sheet1")
output_dir = r"C:\Users\Username\Desktop"
csv_name = "test_book.csv"
arcpy.TableToTable_conversion(interm_table, output_dir, csv_name)
csv_fullpath = output_dir + "\\" + csv_name
df = pd.read_csv(csv_fullpath)
df.drop('OID', axis=1, inplace=True)
df.to_csv(csv_fullpath, index=False)
pandas.read_csv — pandas 0.24.1 documentation
pandas.DataFrame.drop — pandas 0.24.1 documentation
pandas.DataFrame.to_csv — pandas 0.24.1 documentation