Cómo convertir una lista a un csv en Python

Tengo una lista: [‘1’, ‘2’, ‘3’] y quiero convertirla a 1,2,3, es decir, sin corchetes ni comillas.

Si desea generar un archivo CSV canónico, use el módulo csv .


Ejemplo de la documentación:

>>> import csv >>> spamWriter = csv.writer(open('eggs.csv', 'wb'), delimiter=' ', ... quotechar='|', quoting=csv.QUOTE_MINIMAL) >>> spamWriter.writerow(['Spam'] * 5 + ['Baked Beans']) >>> spamWriter.writerow(['Spam', 'Lovely Spam', 'Wonderful Spam']) 
 ",".join(lst) 

lo hará, pero eso no es realmente CSV (necesitaría escapar y tal).

 import csv def writeCsvFile(fname, data, *args, **kwargs): """ @param fname: string, name of file to write @param data: list of list of items Write data to file """ mycsv = csv.writer(open(fname, 'wb'), *args, **kwargs) for row in data: mycsv.writerow(row) mydat = ( ['Name','Age','Grade'], ['Teri', 14, 7], ['John', 8, 2] ) writeCsvFile(r'c:\test.csv', mydat) 

Carl, cada vez que escribes datos en un archivo, Python realmente hace el almacenamiento de los datos y luego realiza su operación de E / S con el archivo (escribiendo los datos en el archivo). Esta operación se llama ‘flushing’ (los buffers). Debe asegurarse de que está cerca () del archivo abierto; de lo contrario, el búfer no se vaciará y, por lo tanto, no tendrá nada escrito en el archivo.

Creo que necesitas dividir el archivo abriendo parte de tu código para que puedas cerrarlo más tarde, por separado. En este caso, está intentando “cerrar” el objeto escritor. Aunque la mejor manera es usar “con”, este ejemplo es más similar a la forma en que lo tienes:

 csvfile = open('test.csv', 'wb') csvwriter = csv.writer(csvfile) for item in pct: csvwriter.writerow(item) csvfile.close() 

Puedes convertir casi cualquier lista a csv usando pandas como este:

 import pandas as pd list1 = [1,2,3,4,5] df = pd.DataFrame(list1) 

Dependiendo de lo que quieras hacer con este csv, puedes mantener el csv en una variable:

 csv_data = df.to_csv(index=False) 

O guárdalo en tu sistema de archivos así:

 df.to_csv('filename.csv', index=False) 

Aquí index=False eliminará la indexación / numeración innecesaria en su csv.