Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
			
		
		
			
				
																			
								michaelbierenfeld 											 
						User 			
		Beiträge:  10  		Registriert:  Mittwoch 19. Juli 2006, 09:36 		
		
						
						
		 
		
						
																			
							
						
																	  Freitag 28. Juli 2006, 14:03  
			
			
			
									Hallo
ab und zu darf ich auch mal wieder programmieren. Also wie kann ich denn den String aus einem snmp request
.1.3.6.1.4.1.2562.1.1.8.1.1.8.3.85.67.52.1871.1201184.4 = STRING: JOBS.UNIX.C2.INFODB
in den Tupel 
(oid, typ, value)
zerlegen. Wobei in diesm Beispiel
oid = 1.3.6.1.4.1.2562.1.1.8.1.1.8.3.85.67.52.1871.1201184.4
type = STRING:
value = JOBS.UNIX.C2.INFODB
ist.
Beste Gruesse
Michael
 
            
			
									
						
										
						 
		 
				
		
		 
	 
	
			
		
		
			
				
																			
								Nirven 											 
						User 			
		Beiträge:  130  		Registriert:  Mittwoch 10. Mai 2006, 08:18 		
		
											Wohnort:  Bremerhaven 
							
						
		 
		
						
																			
							
						
																	  Freitag 28. Juli 2006, 14:16  
			
			
			
									mit split(' ') trennst du nach Leerzeichen, dann hast du zwar noch das Leerzeichen im Tupel aber der Rest passt schonmal. Das Leerzeichen kann man dann auch entfernen, und fertig (das entfernen geht doch bestimmt auch kürzer?). 
 
>>> x = '1.3.6.1.4.1.2562.1.1.8.1.1.8.3.85.67.52.1871.1201184.4 = STRING: JOBS.UNIX.C2.INFODB' 
>>> y = x.split(' ') 
>>> z = y[0],y[2],y[3] 
>>> z 
('1.3.6.1.4.1.2562.1.1.8.1.1.8.3.85.67.52.1871.1201184.4', 'STRING:', 'JOBS.UNIX.C2.INFODB')
            
			
									
						
										
						 
		 
				
		
		 
	 
	
			
		
		
			
				
																			
								michaelbierenfeld 											 
						User 			
		Beiträge:  10  		Registriert:  Mittwoch 19. Juli 2006, 09:36 		
		
						
						
		 
		
						
																			
							
						
																	  Freitag 28. Juli 2006, 14:23  
			
			
			
									Hi,
ja so was ähnliches geht in die Richtung. Nur mir schwebt so was wie
vor. Gehen wuerde
Code: Alles auswählen 
# split zeugs
(oid, typ, val) = (splitted [0], splitted [1], splitted [3])
Ich hätte es nur gerne eleganter um bei den Java Leuten angeben zu können
Grüße
Michael
 
            
			
									
						
										
						 
		 
				
		
		 
	 
	
			
		
		
			
				
								DatenMetzgerX 											 
						User 			
		Beiträge:  398  		Registriert:  Freitag 28. April 2006, 06:28 		
		
											Wohnort:  Zürich Seebach (CH) 
							
						
		 
		
						
																			
							
						
																	  Freitag 28. Juli 2006, 14:39  
			
			
			
									Code: Alles auswählen 
x =".1.3.6.1.4.1.2562.1.1.8.1.1.8.3.85.67.52.1871.1201184.4 = STRING: JOBS.UNIX.C2.INFODB"
x = x.replace(' = ', ';').replace(': ', ';').lstrip('.')
oid, typ, value = x.split(';')
print '%s\n%s\n%s' % (oid, typ, value)
Oder
Code: Alles auswählen 
x =".1.3.6.1.4.1.2562.1.1.8.1.1.8.3.85.67.52.1871.1201184.4 = STRING: JOBS.UNIX.C2.INFODB"
oid, typ, value = x.replace(' = ', ';').replace(': ', ';').lstrip('.').split(';')
print '%s\n%s\n%s' % (oid, typ, value)
Resultat bei beiden
Code: Alles auswählen 
1.3.6.1.4.1.2562.1.1.8.1.1.8.3.85.67.52.1871.1201184.4
STRING
JOBS.UNIX.C2.INFODB
 
            
			
									
						
										
						 
		 
				
		
		 
	 
	
			
	
			
	
			
		
		
			
				
																			
								BlackJack  											 
									
						
		
						
						
		 
		
						
																			
							
						
																	  Freitag 28. Juli 2006, 22:27  
			
			
			
									michaelbierenfeld hat geschrieben: ja so was ähnliches geht in die Richtung. Nur mir schwebt so was wie
vor. Gehen wuerde
Code: Alles auswählen 
# split zeugs
(oid, typ, val) = (splitted [0], splitted [1], splitted [3])
Ich hätte es nur gerne eleganter um bei den Java Leuten angeben zu können
Wenn Du magische Einzeiler elegant findest, dann solltest Du Dir mal Perl anschauen.  In Python ist es eleganter eine Funktion zu schreiben, die robust ist und bei der man verstehen kann was sie tut.
 
            
			
									
						
										
						 
		 
				
		
		 
	 
	
			
		
		
			
				
																			
								CrackPod 											 
						User 			
		Beiträge:  205  		Registriert:  Freitag 30. Juni 2006, 12:56 		
		
						
						
		 
		
						
																			
							
						
																	  Samstag 29. Juli 2006, 11:17  
			
			
			
									BlackJack hat geschrieben: michaelbierenfeld hat geschrieben: Wenn Du magische Einzeiler elegant findest[...]
Was is denn daran magisch?
Code: Alles auswählen 
x =".1.3.6.1.4.1.2562.1.1.8.1.1.8.3.85.67.52.1871.1201184.4 = STRING: JOBS.UNIX.C2.INFODB"
oid, typ, value = x.replace(' = ', ';').replace(': ', ';').lstrip('.').split(';')
print '%s\n%s\n%s' % (oid, typ, value)Das is auch nur ne ganz normale Pythonanweisung, nur dass sie halt - nich wirklich übersichtlich - in eine Zeile geschrieben wurde.
Greetz
 
            
			
									
						
										
						 
		 
				
		
		 
	 
	
			
		
		
			
				
																			
								BlackJack  											 
									
						
		
						
						
		 
		
						
																			
							
						
																	  Samstag 29. Juli 2006, 11:41  
			
			
			
									CrackPod hat geschrieben: BlackJack hat geschrieben: michaelbierenfeld hat geschrieben: Wenn Du magische Einzeiler elegant findest[...]
Was is denn daran magisch?
Da steht das an der Stelle des Kommentars eine magische Python-Anweisung stehen soll.
 
            
			
									
						
										
						 
		 
				
		
		 
	 
	
			
		
		
			
				
																			
								Mad-Marty 											 
						User 			
		Beiträge:  317  		Registriert:  Mittwoch 18. Januar 2006, 19:46 		
		
						
						
		 
		
						
																			
							
						
																	  Montag 31. Juli 2006, 00:29  
			
			
			
									Öhm anstelle von dieser funktionalität zu schreiben schlage ich vor du verwendest die methoden der snmp library. 
 
Strings zerlegen ... aber doch bitte nicht bei sowas. 
 
z.b. bei pysnmp kriegst du automatisch den wert mit dem richtigen datentyp. 
auch wunderbar mit oid:value tupeln.
            
			
									
						
										
						 
		 
				
		
		 
	 
	
			
		
		
			
				
																			
								michaelbierenfeld 											 
						User 			
		Beiträge:  10  		Registriert:  Mittwoch 19. Juli 2006, 09:36 		
		
						
						
		 
		
						
																			
							
						
																	  Montag 31. Juli 2006, 09:42  
			
			
			
									Hallo, 
 
pysnmp habe ich mir angeschaut. In meinem Fall ist das wie mit Kanonen auf Spatzen geschossen. Besten Dank aber 
 
Michael