Extracion de datos de un archivo plano
Publicado: 2015-09-02 14:58 @665
Buenas tardes con todos
Tengo un problema al extraer columnas con datos de un archivo plano. El archivo es el siguiente :
Yo deseo extraer solo determinadas columnas (deviceID, insertiontime, row_index) e insertarlas en un archivo csv.
Para esto pensaba usar el siguiente código:
El código aparentemente funciona bien porque el print() indica la cantidad de registros correspondiente al archivo plano; pero el contenido del archivo final sale en blanco. Please, Help Me...
Tengo un problema al extraer columnas con datos de un archivo plano. El archivo es el siguiente :
Using text Syntax Highlighting
(1 row affected)
(1 row affected)
(1 row affected)
(1 row affected)
(1 row affected)
|deviceID |measuringObject|collectionEndTime |taskID |insertionTime |granularityPeriod|Time10 |row_index
|-----------|---------------|-------------------|-----------|-------------------|-----------------|-------------------|-----------
| 4722691|825 |2015/07/06 10:00:00| 168|2015/07/06 09:52:00| 60|2015/07/06 10:00:00| 933114
| 4722691|936 |2015/07/06 10:00:00| 168|2015/07/06 09:52:00| 60|2015/07/06 10:00:00| 933115
| 4722691|2417 |2015/07/06 10:00:00| 168|2015/07/06 09:52:00| 60|2015/07/06 10:00:00| 933116
| 4722691|2903 |2015/07/06 10:00:00| 168|2015/07/06 09:52:00| 60|2015/07/06 10:00:00| 933117
(1 row affected)
(1 row affected)
(1 row affected)
(1 row affected)
|deviceID |measuringObject|collectionEndTime |taskID |insertionTime |granularityPeriod|Time10 |row_index
|-----------|---------------|-------------------|-----------|-------------------|-----------------|-------------------|-----------
| 4722691|825 |2015/07/06 10:00:00| 168|2015/07/06 09:52:00| 60|2015/07/06 10:00:00| 933114
| 4722691|936 |2015/07/06 10:00:00| 168|2015/07/06 09:52:00| 60|2015/07/06 10:00:00| 933115
| 4722691|2417 |2015/07/06 10:00:00| 168|2015/07/06 09:52:00| 60|2015/07/06 10:00:00| 933116
| 4722691|2903 |2015/07/06 10:00:00| 168|2015/07/06 09:52:00| 60|2015/07/06 10:00:00| 933117
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4
Yo deseo extraer solo determinadas columnas (deviceID, insertiontime, row_index) e insertarlas en un archivo csv.
Para esto pensaba usar el siguiente código:
Using perl Syntax Highlighting
- my $nombre_archivo_fuente = "/home/osboxes/Desktop/CN1/OFDOG_data.out";
- my $SALIDA = "salida.txt";
- open my $FORMAT_FONT, '<',$nombre_archivo_fuente;
- open my $FORMAT_DO, '>', $SALIDA;
- my $i = 0 ;
- while (my $registro = <$FORMAT_FONT>{
- next if $. == 1 ;
- next if $. == 2 ;
- next if $. == 3 ;
- next if $. == 4 ;
- next if $. == 5 ;
- next if $. == 6 ;
- next if $. == 7 ;
- chomp $registro ;
- my @campos = split("|", $registro);
- my $archivo_final = join ',',@campos[0,4,7];
- print $FORMAT_DO "$archivo_final\n";
- $i++;
- }
- close $FORMAT_FONT;
- close $SALIDA;
- my $pathsalida = "/home/osboxes/Desktop/CN2";
- copy ($SALIDA, $pathsalida);
- chmod 0777, "/home/osboxes/Desktop/CN2/$SALIDA" ;
- unlink $SALIDA;
- print "\n\t Operación realizada con éxito: $i registros procesados del archivo $archivo_final.\n";
Coloreado en 0.003 segundos, usando GeSHi 1.0.8.4
El código aparentemente funciona bien porque el print() indica la cantidad de registros correspondiente al archivo plano; pero el contenido del archivo final sale en blanco. Please, Help Me...