Quiero crear un archivo CSV usando Perl y escribir algunos datos en él. ¿Hay alguna forma de hacer eso?¿Cómo creo un archivo CSV usando Perl?
Respuesta
Puede usar Class:CSV.
use Class::CSV;
my $csv = Class::CSV->new(
fields => [qw/userid username/]
);
$csv->add_line([2063, 'testuser']);
$csv->add_line({
userid => 2064,
username => 'testuser2'
});
$csv->print();
# 2063,testuser
# 2064,testuser2
Editar: Para más bibliotecas, puede search CPAN.
Utilizamos generalmente Text::CSV_XS
(que la mencionada Class::CSV
se basa en)
ACTUALIZACIÓN: comentaristas a continuación también sugieren el uso de Text::CSV
que cargar hasta Text::CSV_XS
o, si eso no es avialable, caer de nuevo Text::CSV_PP
que no tiene dependencia de XS
y puede ser más fácil de instalar.
Hay más de una forma de hacerlo.
- DBD::CSV - Use SQL para leer y escribir archivos CSV.
- Text::CSV - Crea y analiza archivos CSV una línea a la vez. Este es prácticamente el estándar de oro para la manipulación de CSV.
- POE::Filter::CSV - Proporciona un filtro CSV para su componente POE IO.
- Data::Tabular::Dumper::CSV - Volcar una tabla directamente en un archivo CSV (los objetos con la misma interfaz pueden volcar a archivos XML o MS Excel).
Hay muchos otros en CPAN, también.
Por supuesto, se podría ignorar todo esto y sólo tiene que utilizar un bucle, una combinación y una impresión:
my @table = (
[ 'a', 'b', 'c'],
[ 1, 2, 3 ],
[ 2, 4, 6 ],
);
for my $row (@table) {
print join(',', @$row), "\n";
}
Sólo tiene que ejecutar la secuencia de comandos y redirigir la salida a un archivo, bang! estás listo. O puede volverse loco y open un identificador de archivo e imprimir directamente en un archivo.
Pero no manejará campos multilínea, comas incrustadas o cualquiera de las muchas otras rarezas que pueden surgir en este tipo de tareas de procesamiento de datos. Así que ten cuidado con este enfoque.
Mis recomendaciones:
- Si está creando una aplicación POE , utilizan POE :: Filtro.
- Si usted es un monstruo SQL/DBI y sueña en SQL, o puede necesitar reemplazar la salida CSV con una conexión de base de datos real , use DBD :: SQL.
- Si tiene de datos simples y está improvisar un pequeño script sucia de usar y tirar a formato de algunos datos de la hoja de cálculo de digerir, el uso de impresión y unirse a - hacer esto para ningún código con una expectativa de vida de más de 2 horas.
- Si desea desechar un blob de datos en un CSV o XML use Data :: Tabular :: Dumper :: CSV.
- Si está escribiendo algo que necesita ser estable, fácil de mantener y rápido, y necesita el máximo control para la entrada y la salida, use Text :: CSV. (Tenga en cuenta que POE :: Filter :: CSV, Data :: Tabular :: Dumper :: CSV y DBD :: CSV usan Text :: CSV o Text :: CSV_XS como para el procesamiento de back-end).
- 1. Cómo leer un archivo CSV usando iOS
- 2. ¿Cómo analizo eficientemente un archivo CSV en Perl?
- 3. ¿Cómo puedo extraer campos de un archivo CSV en Perl?
- 4. ¿Cómo descargo un archivo usando Perl?
- 5. ¿Cómo creo una clase Perl?
- 6. ¿Cómo creo un nuevo archivo de Excel usando JXL?
- 7. ¿Cómo creo un archivo CSV desde la base de datos en Python?
- 8. Crear un archivo de jerarquía usando perl
- 9. ¿Cómo creo una matriz 2D en Perl?
- 10. Cómo usar SQL en un archivo CSV
- 11. ¿Cómo creo/edito un archivo Manifest?
- 12. ¿Cómo anexar a un archivo CSV?
- 13. Descargar el archivo CSV usando "AJAX"
- 14. Importar archivo csv grande usando phpMyAdmin
- 15. ¿Cómo verifica si un archivo está abierto usando Perl?
- 16. django descarga el archivo csv usando un enlace
- 17. ¿Cómo creo un archivo vacío en emacs?
- 18. ¿Cómo creo un hash de hashes en Perl?
- 19. Convertir un archivo csv a json usando C#
- 20. Cómo abrir un archivo csv en Android
- 21. ¿Cómo obtener un archivo .csv en R?
- 22. Cómo analizar un archivo CSV en Bash?
- 23. Cómo filtrar desde archivo CSV usando Python Script
- 24. ¿Lectura de un archivo CSV en .NET?
- 25. ¿Cómo creo los programas de arrastrar y soltar Strawberry Perl?
- 26. cómo importar CSV usando zend
- 27. Oracle: Importar archivo CSV
- 28. ¿Cómo creo un directorio en el servidor ftp usando C#?
- 29. Awk suma condicional de un archivo CSV
- 30. En Perl, ¿cómo creo de manera segura una FIFO temporal?
Esta es la mejor opción. Text :: CSV_XS está altamente optimizado y cuenta con una API suave. Lo usamos todo. El autor también es, en mi opinión, el más receptivo de todos los CPAN, se enorgullece del módulo y proporciona soporte de primera clase. Text :: CSV_PP también es una excelente alternativa si no puede compilar para _XS, ideal si lo necesita más adelante. Lo correcto sucederá en estos días si simplemente usa Text :: CSV –
De acuerdo con esa última frase: simplemente use Text :: CSV y cargará Text :: CSV_XS si está disponible o recurrirá a Text :: CSV_PP si el sistema no tiene instalada la versión XS. –
@szabgab ¿Puedes dar un ejemplo de cómo crear un CSV con Text :: CSV en tu respuesta? Estoy leyendo la documentación y parece extremadamente centrado en el análisis de CSV, no muy claro sobre cómo crear uno. –