me encontré con este script Perl, mientras migrating my SQLite database to mysqlLa traducción de Perl a Python
Me preguntaba (ya no sé Perl) ¿cómo se podría volver a escribir esto en Python?
puntos de bonificación para el más corto (código) respuesta :)
edición: lo siento, destinados código más corto, la respuesta no es estrictamente menor
#! /usr/bin/perl
while ($line = <>){
if (($line !~ /BEGIN TRANSACTION/) && ($line !~ /COMMIT/) && ($line !~ /sqlite_sequence/) && ($line !~ /CREATE UNIQUE INDEX/)){
if ($line =~ /CREATE TABLE \"([a-z_]*)\"(.*)/){
$name = $1;
$sub = $2;
$sub =~ s/\"//g; #"
$line = "DROP TABLE IF EXISTS $name;\nCREATE TABLE IF NOT EXISTS $name$sub\n";
}
elsif ($line =~ /INSERT INTO \"([a-z_]*)\"(.*)/){
$line = "INSERT INTO $1$2\n";
$line =~ s/\"/\\\"/g; #"
$line =~ s/\"/\'/g; #"
}else{
$line =~ s/\'\'/\\\'/g; #'
}
$line =~ s/([^\\'])\'t\'(.)/$1THIS_IS_TRUE$2/g; #'
$line =~ s/THIS_IS_TRUE/1/g;
$line =~ s/([^\\'])\'f\'(.)/$1THIS_IS_FALSE$2/g; #'
$line =~ s/THIS_IS_FALSE/0/g;
$line =~ s/AUTOINCREMENT/AUTO_INCREMENT/g;
print $line;
}
}
Algunos código adicional era necesario migrar con éxito el sqlite base de datos (maneja una línea Crear instrucciones de tabla, claves foráneas, corrige un error en el programa original que convirtió los campos vacíos ''
en \'
.
I posted the code on the migrating my SQLite database to mysql Question
¿Es esto tan difícil de leer? Este es probablemente el programa perl más legible jamás escrito. –
dice mucho sobre perl;) – Jiaaro
@John Kugelman Creo que hubiera sido aún más legible sin la variable '$ line'. –