Advertisement
Guest User

txto to csv

a guest
Jan 12th, 2011
560
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 6.69 KB | None | 0 0
  1. #+++++++++++++++++++++++
  2. #++++ Instrucciones ++++
  3. #+++++++++++++++++++++++
  4. #Dejar Los Archivos "TablaCir_2010.txt" y "TablaPro.txt", en la misma carpeta del Script
  5. #luego ejecutar con el interprete de python( python NombreDelScript.py ),
  6. #El programa pedira que Ingrese el Nombre del Archivo a Convertir a .CSV, Ingresa el Nombre
  7. #del archivo a convertir y luego presionar enter, los datos convertidos quedan en "servel.csv".
  8.  
  9. #++++++++++++++++++++++++++
  10. #++++ Formato de tabla ++++
  11. #++++++++++++++++++++++++++
  12. #SEXO|CIRCUNSCRIPCION|COMUNA|PROVINCIA|REGION|REG_ELECTORAL|NUM_INSCRIP|RUT|DIGITO|NOMBRE|FECH_NAC|LEE?|VIDENTE|FECH_INSCRIP|NACIONALIDAD|PROFESION|DOMICILIO
  13.  
  14. #Variable de Recorrido.
  15. position = 1
  16. #funcion que recorre la cadena.
  17. #y retorna el numero de datos que deseo, utiliza
  18. #la variable pos para ir iterando.
  19.  
  20. #1- cadena a recorrer( ojo con la posicion!! ).
  21. #2- Cantidad de datos que necesito de la cadena.
  22. #3- un 1 :p
  23. def recorreCad( cadena , numdedatos , pos ):
  24.     #convertimos la variable cadena, en una cadena.
  25.     str( cadena )
  26.     #creamos una variable auxiliar de tipo Cadena
  27.     aux_cad = ""
  28.     str(aux_cad)
  29.     #recorremos la cadena.
  30.     contador = 1
  31.     for caracter in cadena:
  32.     #si tenemos el numero de datos pedidos, paramos el for.
  33.     #y retornamos los datos.
  34.         if contador == numdedatos+1:
  35.             pos = pos+numdedatos
  36.             return aux_cad
  37.     #de lo contrario, seguimos concatenando.
  38.         aux_cad = aux_cad + caracter
  39.        
  40.     #sumamos uno al contador.
  41.         contador = contador + 1
  42.        
  43.  
  44. #Busca el numero de Cirscunscripcion.
  45. #recive un numero entero, y retorna la Cadena con los datos.
  46. def findCircuns( numC ):
  47.     NombreA = "TablaCir_2010.txt"
  48.     handleA  = open( NombreA , "r" )
  49. #Recorremos el Archivo en busca del numero de circunscripcion.
  50.     for linea in handleA.readlines():
  51.         if int(recorreCad( linea[0:] , 3 , 1 )) == numC:
  52.             handleA.close()
  53.             return linea[0:]
  54.  
  55. #Busca LA profesion por el Codigo.
  56. def findProff( numC ):
  57.     NombreA = "TablaPro.txt"
  58.     handleA = open( NombreA , "r" )
  59.     for linea in handleA.readlines():
  60.         if int(recorreCad( linea[0:] , 3 , 1 )) == numC:
  61.             handleA.close()
  62.             return linea[0:]
  63.  
  64. def IngresaArch( string ):
  65.     nombreA = "servel.csv"
  66.     handleA = open( nombreA , "a" )
  67.     handleA.write( string )
  68.     handleA.close()
  69.            
  70. #Pedimos Al Usuario que Ingrese El Nombre Del Archivo.
  71. try:
  72.     nombreA = raw_input("\t\t \n \n Ingrese El Nombre del Archivo : ")
  73. #abrimos el Archivo
  74.     handleA = open( nombreA , "r" )
  75. except IOError:
  76.     print "\t\t Error : El Archivo Nose pudo leer \n\n"
  77.  
  78.  
  79. #Agrego los Nombres de Las columnas.
  80. IngresaArch( "SEXO," )
  81. IngresaArch( "CIRCUNSCRIPCION," )
  82. IngresaArch( "COMUNA," )
  83. IngresaArch( "PROVINCIA," )
  84. IngresaArch( "REGION," )
  85. IngresaArch( "REG_ELECTORAL," )
  86. IngresaArch( "NUM_INSCRIP," )
  87. IngresaArch( "RUT," )
  88. IngresaArch( "DIGITO," )
  89. IngresaArch( "NOMBRE," )
  90. IngresaArch( "FECH_NAC," )
  91. IngresaArch( "LEE?," )
  92. IngresaArch( "VIDENTE?," ) 
  93. IngresaArch( "FECH_INSCRIP," ) 
  94. IngresaArch( "NACIONALIDAD," ) 
  95. IngresaArch( "PROFESION," )
  96. IngresaArch( "DOMICILIO\n" )           
  97. #recorremos el Archivo
  98. for linea in handleA.readlines():
  99. #sacamos el primer valor de la cadena, y lo convertimos en entero
  100.     sex = int(recorreCad( linea[0:] , 1  , position ))
  101. #si el numero es 0, es mujer, de lo contrario es hombre
  102.     if sex == 0:
  103.         print "Es Mujer"
  104.         IngresaArch( "\""+"Mujer"+"\""+"," )
  105.     else:
  106.         print "Es Hombre"
  107.         IngresaArch( "\""+"Hombre"+"\""+"," )
  108. #Sacamos El Codigo De Cincunscripcion
  109.     cincunscripcion = int(recorreCad( linea[1:] , 3  , position ))
  110. #imprimimos en pantalla.
  111.     print "Num de circunscripcion : " , cincunscripcion
  112.     Cad_Circuns = findCircuns( cincunscripcion )
  113. #Glosa de circunscriipcion
  114.     print "Glosa de Circunscripcion : " + recorreCad( Cad_Circuns[3:] , 15 , 1 )
  115.     IngresaArch("\"" + recorreCad( Cad_Circuns[3:] , 15 , 1 ) + "\"" + ",")
  116. #Glosa de la Comuna
  117.     print "Glosa de la Comuna : " + recorreCad( Cad_Circuns[37:] , 15 , 1 )
  118.     IngresaArch("\"" + recorreCad( Cad_Circuns[37:] , 15 , 1 ) + "\"" + "," )
  119. #Glosa de provincia
  120.     print "Glosa de la Provincia : " + recorreCad( Cad_Circuns[69:] , 15 , 1 )
  121.     IngresaArch("\"" +  recorreCad( Cad_Circuns[69:] , 15 , 1 ) + "\"" + "," )
  122. #Glosa de Region
  123.     print "Glosa de la Region : " +  recorreCad( Cad_Circuns[101:] , 15 , 1)
  124.     IngresaArch("\"" +  recorreCad( Cad_Circuns[101:] , 15 , 1) + "\"" + "," )
  125. #Numero de Registro Electoral
  126.     print "Numero de Registro Electoral : " + recorreCad( linea[4:] , 3 , 1 )
  127.     IngresaArch("\"" +  recorreCad( linea[4:] , 3 , 1 ) + "\"" + "," )
  128. #Numero de Inscripcion
  129.     print "Numero de Inscripcion : " + recorreCad( linea[7:] , 3 , 1 )
  130.     IngresaArch("\"" +   recorreCad( linea[7:] , 3 , 1 ) + "\"" + "," )
  131. #Cedula de indentidad
  132.     print "Cedula de Identidad : " + recorreCad( linea[10:] , 8 ,1 )
  133.     IngresaArch("\"" +  recorreCad( linea[10:] , 8 ,1 ) + "\"" + "," )
  134. #Digito Verificado
  135.     print "Digito Verificador : " + recorreCad( linea[18:] , 1 , 1 )
  136.     IngresaArch("\"" +  recorreCad( linea[18:] , 1 , 1 ) + "\"" + "," )
  137. #Nombre
  138.     print "Nombre : " +     recorreCad( linea[19:] , 36 , 1 )
  139.     IngresaArch("\"" +  recorreCad( linea[19:] , 36 , 1 ) + "\"" + "," )
  140. #Fecha de Nacimiento
  141.     print "Fecha de Nacimiento(AAAAMMDD) : " + recorreCad( linea[55:] , 8 , 1 )
  142.     IngresaArch("\"" +  recorreCad( linea[55:] , 8 , 1 ) + "\"" + "," )
  143. # Es analfabeto
  144.     if int(recorreCad( linea[63:], 1 ,1 )) == 0:
  145.         print "es Alfabeto\n"
  146.         IngresaArch("\"" +  "Alfabeto" + "\"" + "," )
  147.     else:
  148.         print "Es analfabeto\n"
  149.         IngresaArch("\"" +  "Analfabeto" + "\"" + "," )
  150.  
  151. #Es Vidente
  152.     if int(recorreCad( linea[64:] , 1 , 1 )) == 0:
  153.         print "Es Vidente\n"
  154.         IngresaArch("\"" +  "Vidente" + "\"" + "," )
  155.     else:
  156.         print "Es No VIdente\n"
  157.         IngresaArch("\"" +  "No Vidente" + "\"" + "," )
  158.        
  159. #Fecha de Inscripcion
  160.     print "Fecha de Inscripcion : " + recorreCad( linea[65:] , 8 , 1 )
  161.     IngresaArch("\"" +  recorreCad( linea[65:] , 8 , 1 ) + "\"" + "," )
  162. #Nacionalidad
  163.     print "Nacionalidad : " + recorreCad( linea[73:] , 15 ,1 )
  164.     IngresaArch("\"" + recorreCad( linea[73:] , 15 ,1 ) + "\"" + "," )
  165. #Cadena con Codigo de Profesion y Glosa de Profesion
  166.     numprof = int( recorreCad( linea[88:] , 3 , 1))
  167.     globprof = findProff( numprof )
  168. #Nombre de la profesion
  169.     print "Nombre de la Profesion : " + globprof[3:]
  170.     IngresaArch("\"" + globprof[3:15] + "\"" + "," )
  171. #Domicilio
  172.     print "Domicilio : " + recorreCad( linea[91:] , 40 ,1 )
  173.     IngresaArch("\"" +  recorreCad( linea[91:] , 40 ,1 ) + "\"" + "\n" )
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement