ANFÄNGER: Zahlen extrahieren und vergleichen

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.
Antworten
koxbox
User
Beiträge: 11
Registriert: Donnerstag 27. Februar 2014, 13:45

Hallo,

ich hab eigentlich ein ganz simples Problem.

ich habe einen string den ich auslese aus einer Datei:

'CentOS release 6.5 (Final)'

daraus brauche ich nur die Zahlen, also 6.5.

Python Version = 2.7

Code: Alles auswählen

import os
import re

READRELEASE = open('/etc/redhat-release', 'r').readline().split('\n', 1)[0]
RELEASEVERSION = re.findall(r'\d+', READRELEASE)
print RELEASEVERSION
da bekomme ich dann:

['6', '5']

ich brauche daraus jetzt nur die Zahl 6.
ich will dann die 6 mit "if" vergleichen.

also, wie bekomme ich da nur die Zahl 6

Danke & Grüße

Heiko
Zuletzt geändert von Anonymous am Donnerstag 27. Februar 2014, 14:55, insgesamt 1-mal geändert.
Grund: Quelltext in Python-Code-Tags gesetzt.
Benutzeravatar
/me
User
Beiträge: 3555
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

koxbox hat geschrieben: ['6', '5']

ich brauche daraus jetzt nur die Zahl 6.
Womit hast du denn konkret ein Problem? Wie du aus einer Liste das erste Element bekommst weißt du doch hoffentlich. Wenn nicht, dann wirf mal einen Blick ins Tutorial zum Thema Listen. Die Konvertierung eines Strings in eine Zahl mit Hilfe von int() kommt sogar noch früher im Tutorial.
koxbox
User
Beiträge: 11
Registriert: Donnerstag 27. Februar 2014, 13:45

Danke @ /me

das war es genau was ich suchte:

Lösung ist also:

print RELEASEVERSION[0]

6
koxbox hat geschrieben:Womit hast du denn konkret ein Problem? Wie du aus einer Liste das erste Element bekommst weißt du doch hoffentlich.
nein das wusste ich nicht :-) ich google mich gerade so durch nach dem was ich suche um das zu erreichen was ich will :-)
Benutzeravatar
/me
User
Beiträge: 3555
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

koxbox hat geschrieben:nein das wusste ich nicht :-)
OK, das war unerwartet. Bei jemandem, der Dateioperationen und reguläre Ausdrücke in Python einsetzt, war ich in der Tat von einem grundsätzlichen Verständnis der elementaren Datenstrukturen ausgegangen. Dann ist es ja prima, dass sich das Problem so einfach gelöst hat.
BlackJack

@koxbox: Arbeite besser ein Grundlagentutorial durch. Zeichenketten, Liste, und Wörterbücher (`dict`) braucht man eigentlich bei jedem nicht-trivialen Programm, darum sollte man die Operationen damit schon kennen.

Der ``.split('\n', 1)[0]``-Teil ist zum Beispiel eine *sehr* umständliche Art die `rstrip()`-Methode zu umschreiben. Und eigentlich scheint mir das gar nicht nötig.

Vielleicht ist das `platform`-Modul auch interessant:

Code: Alles auswählen

In [17]: platform.linux_distribution()
Out[17]: ('Ubuntu', '11.04', 'natty')
koxbox
User
Beiträge: 11
Registriert: Donnerstag 27. Februar 2014, 13:45

@ /me

ich muss noch viel viel dazulernen!

@BlackJack

der Tip mit dem Plaform Modul ist auch prima.

Ich versuche anhand eines kleinen Projektes Python näher zu kommen.
Klar werde ich mir nach und nach auch in die Grundlagen vertiefen.

Python macht auf jeden fall spass!
BlackJack

@koxbox: Wenn Du tatsächlich Python lernen willst, statt nur irgendwas mit Python zum laufen zu bringen, dann macht die Vorgehensweise noch weniger Sinn.

Denn dann bastelst Du irgendwelchen kruden Sachen aus zusammengesuchten Codeschnipseln und per Versuch und Irrtum um das dann später wenn Du die Grundlagen kannst, eh alles wieder umschreiben zu müssen, statt es gleich richtig zu lernen.
koxbox
User
Beiträge: 11
Registriert: Donnerstag 27. Februar 2014, 13:45

@BlackJack.

Die Tutorials finde ich immer sehr Trocken.
Ich bin da auch schon ein einiges durchgegangen.
Nur Theorie ohne direkt Anwenung ist mir zu Trocken.

Aber das wird schon... :?
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

koxbox hat geschrieben:Die Tutorials finde ich immer sehr Trocken.
Ich bin da auch schon ein einiges durchgegangen.
Nur Theorie ohne direkt Anwenung ist mir zu Trocken.
Hast du auch erst Schreiben gelernt und danach die Buchstaben? ;-) Ohne Theorie wirst du es nicht schaffen, manchmal muss man da eben durch.
Das Leben ist wie ein Tennisball.
BlackJack

@koxbox: Tutorials durcharbeiten heisst doch das anzuwenden und auszuprobieren was da vermittelt wird. Das ist Praxis und keine reine Theorie.

Und man kann nun mal keine Anwendung schreiben wenn man die Grundlagen nicht kennt.
koxbox
User
Beiträge: 11
Registriert: Donnerstag 27. Februar 2014, 13:45

ja... ich geb euch da schon recht. Und klar werde ich mir auch die Grundlagen reinziehen.
Ich hab da einfach ein anderes Vorgehen. Jeder lernt auf seine Art.

Ich mag es einfach wenn dabei auch gleich was nützliches rauskommt das ich gebrauchen kann.
Und es nach und nach verbessere.

schau mer mal!
Antworten