Autor
		 | 
		
			Tema: Ayuda con expresiones regulares [Python]  (Leído 6,015 veces)
		 | 
	 
 
	
		
			
				
					
						
							wolvelopez
							
								
								  Desconectado
								Mensajes: 19
								
								 
								
								
								
								
								 
							 
						 | 
						
							
							 
							
Hola compañeros. Estoy desarrollnado en python una pequeña aplicacion pero llevo atascado un tiempo con esto. Tengo un fichero .txt con 3 columnas de este tipo:
  Codigo    Categoria    Subcategoria 0001      HDXC         LAMP4JIR 0002      JHFD          HH876GJ
  Me conecto bien al fichero y con readline() obtengo la cadena pero dentro de la cadena necesito separar las columnas y obterner por separado los 3 valores que se presentan. He probado con find() pero no veo la manera. Si alguien mas avispao en expresiones regulares o cadenas me ayuda le estaría agradecido. Gracias. 
  
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
									« Última modificación: 26 Julio 2011, 21:07 pm por Leo Gutiérrez. »
								 | 
								
									 
									En línea
								 | 
							  
							 
							"La revolución es algo que se lleva en el alma, no en la boca para vivir de ella." 
						 | 
					 
				 
			 |  
		 
	 |  
	
		
		
			
				
					
						
							Novlucker
							
								Ninja y 
								Colaborador
								    
								  Desconectado
								Mensajes: 10.683
								 
								Yo que tu lo pienso dos veces
								
								
								
								
								
								  
							 
						 | 
						
							
							 
							
Se supone que dichas columnas estan separadas por espacios o tabulaciones, por lo cual puedes utilizar split http://docs.python.org/library/stdtypes.html#str.splitSaludos 
  
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									En línea
								 | 
							  
							 
							Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD "Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro." Albert Einstein  
						 | 
					 
				 
			 |  
		 
	 |  
	
		
		
			
				
					
						
							wolvelopez
							
								
								  Desconectado
								Mensajes: 19
								
								 
								
								
								
								
								 
							 
						 | 
						
							
							 
							
Son tabulaciones. Estoy mirando lo que me has pasado haber si consigo enterarme de las expresiones regulares. Gracias. 
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									En línea
								 | 
							  
							 
							"La revolución es algo que se lleva en el alma, no en la boca para vivir de ella." 
						 | 
					 
				 
			 |  
		 
	 |  
	
		
		
			
				
					
						
							Novlucker
							
								Ninja y 
								Colaborador
								    
								  Desconectado
								Mensajes: 10.683
								 
								Yo que tu lo pienso dos veces
								
								
								
								
								
								  
							 
						 | 
						
							
							 
							
En ningún momento te he recomendado expresiones regulares, sino simplemente un método. cadena = 'esto es una cadena separada por espacios' miarray = cadena.split(' ') 
 
 Saludos  
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									En línea
								 | 
							  
							 
							Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD "Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro." Albert Einstein  
						 | 
					 
				 
			 |  
		 
	 |  
	
		
		
			
				
					
						
							wolvelopez
							
								
								  Desconectado
								Mensajes: 19
								
								 
								
								
								
								
								 
							 
						 | 
						
							
							 
							
Perdona Novlucker llevas razón. Es que mas tarde estuve leyendo sobre expresiones regulares porque resulta que algunas veces tengo una tabulacion y otras 2 o 3 tabulaciones. Depende de como me pasen el fichero. 
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									En línea
								 | 
							  
							 
							"La revolución es algo que se lleva en el alma, no en la boca para vivir de ella." 
						 | 
					 
				 
			 |  
		 
	 |  
	
		
		
			
				
					
						| 
							Shell Root
							
						 | 
						
							
							 
							
Pero el número de tabulaciones son generales por archivo o por linea, es decir, en el archivo1.txt la tabulación es de 1 en todos los registros, pero en archivo2.txt la tabulación es de 3? 
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									En línea
								 | 
							  
							 
							Te vendería mi talento por poder dormir tranquilo. 
						 | 
					 
				 
			 |  
		 
	 |  
	
		
		
			
				
					
						
							wolvelopez
							
								
								  Desconectado
								Mensajes: 19
								
								 
								
								
								
								
								 
							 
						 | 
						
							
							 
							
No, en el archivo1.txt la tabulacion entre una columna y otra puede ser de 2 tabulaciones y entre otras 2 columnas puede ser de 1 tabulacion, ej: columna1    columna2                columna3 ------------------------------------------------ dato           dato                       dato
  Las tabulaciones me va variando dependiendo de los archivos que me van pasando. Muchas gracias. 
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									En línea
								 | 
							  
							 
							"La revolución es algo que se lleva en el alma, no en la boca para vivir de ella." 
						 | 
					 
				 
			 |  
		 
	 |  
	
		
		
			
				
					
						
							wolvelopez
							
								
								  Desconectado
								Mensajes: 19
								
								 
								
								
								
								
								 
							 
						 | 
						
							
							 
							
Solucionado: valores = re.findall("([^\s]*)\s*", linea)[ : -1 ]Muchas gracias.  
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									En línea
								 | 
							  
							 
							"La revolución es algo que se lleva en el alma, no en la boca para vivir de ella." 
						 | 
					 
				 
			 |  
		 
	 |  
	 |  
 
	 
	
 
			 
			
				
					
						| Mensajes similares | 
					 
					
						 | 
						Asunto | 
						Iniciado por | 
						Respuestas | 
						Vistas | 
						Último mensaje | 
					 
					
						
							 
						 | 
						
							 
						 | 
						
							Expresiones regulares --->(Python)[Resuelto]
							 
							Scripting
						 | 
						
							¨°o.O (ßa¢Kg|å§§) O.o°
						 | 
						
							2
						 | 
						
							5,272
						 | 
						
							 
							
								29 Marzo 2010, 02:21 am 
								por Novlucker
							
						 | 
					 
					
						
							 
						 | 
						
							 
						 | 
						
							[ayuda][python]problema con expresiones regulares
							 
							Scripting
						 | 
						
							daryo
						 | 
						
							3
						 | 
						
							2,920
						 | 
						
							 
							
								16 Enero 2014, 04:38 am 
								por Once
							
						 | 
					 
					
						
							 
						 | 
						
							 
						 | 
						
							Ayuda expresiones regulares.
							 
							Scripting
						 | 
						
							AlejandroPrz
						 | 
						
							1
						 | 
						
							2,152
						 | 
						
							 
							
								11 Febrero 2014, 14:00 pm 
								por fary
							
						 | 
					 
					
						
							 
						 | 
						
							 
						 | 
						
							Ayuda con python, expresiones regulares y urllib
							 
							Scripting
						 | 
						
							madoko
						 | 
						
							6
						 | 
						
							3,643
						 | 
						
							 
							
								 2 Diciembre 2015, 00:14 am 
								por madoko
							
						 | 
					 
					
						
							 
						 | 
						
							 
						 | 
						
							[PYTHON ]Ayuda expresiones regulares
							 
							Python
						 | 
						
							aangrymasther
						 | 
						
							1
						 | 
						
							4,509
						 | 
						
							 
							
								20 Diciembre 2022, 16:29 pm 
								por aangrymasther
							
						 | 
					 
				 
			    |