Hallo, ich bin ein absoluter Pythonanfänger, und habe ich hier ne Frage.
Unter habe ich ein text-file, die zuerst gelesen werden soll, und dann bestimmte Wörter gesucht werden sollen. Als Ausgabewert soll aber die Zeilennummer und Position an dieser Zeile angezeigt werden.
Kann jmd mir helfen, wie ich vorgehen soll, am besten mir kurze code schreiben, vielen Dank!!
z.B: file.txt:
hello world
0123456789
nice too see you!
HELLO world
goodbye
find (file.txt, world) => return_line = 1 , 4
return_pos = X , Y
find (file.txt, world && HELLO) => return_line = 4
return_pos = Y
Problem bei der Funktion suchen
-
- User
- Beiträge: 773
- Registriert: Mittwoch 5. November 2003, 18:06
- Wohnort: Schweiz
- Kontaktdaten:
Hi
Hier mal ein paar Codestücke, damit du mal herumexperimentieren kannst:
Falls du damit nicht weiterkommst, poste mal deinen Versuch
Gruss
Hier mal ein paar Codestücke, damit du mal herumexperimentieren kannst:
Code: Alles auswählen
#Datei zeilenweise einlesen
f = file(filename, 'rU')
for index, line in enumerate(f):
print index, line
f.close()
#*words ist eine liste mit den parametern ('hello','world') drin:
def find(filename, *words):
for word in words:
print word
find('dateiname', 'world', 'hello')
#Text in einem String suchen
print 'world' in 'hello world'
Gruss
-
- User
- Beiträge: 8
- Registriert: Donnerstag 19. April 2007, 15:38
eine dumme Frage, gibt es hier Unterschied zwischen filename und 'Dateiname'?
-
- User
- Beiträge: 419
- Registriert: Sonntag 3. September 2006, 15:11
- Wohnort: in den weiten von NRW
- Kontaktdaten:
Das Argument heißt filename. 'dateiname' ist der Pfad der zu durchsuchenden Datei, also sowas wie "C:\Projekt\Beispiel.txt" oder relativ "Beispiel.txt", wobei der ja hier in ´find´ garnicht verwand wird und in Zeile 2 als Variable vorrausgesetzt wird. Is halt nur ein Stück Codebeispiel.
-
- User
- Beiträge: 8
- Registriert: Donnerstag 19. April 2007, 15:38
Ich habe jetzt auch mit folgenden Code ein Text in Zeilenweise numeriert lesen können, aber wie die bestimmte Wörter gesucht werden kann und der Übergabewert ist z.B ('Deutschland' liegt auf der Zeile 2) so darzustellen ist, weiß ich noch nicht.
kann jmd paar Code schreiben?
kann jmd paar Code schreiben?
Code: Alles auswählen
import sys
from string import *
d=open("suchen.txt")
zeilen=d.readlines()
nummer=1
for z in zeilen:
print "%3i %s" % (nummer, z)
nummer=nummer+1
-
- User
- Beiträge: 419
- Registriert: Sonntag 3. September 2006, 15:11
- Wohnort: in den weiten von NRW
- Kontaktdaten:
Hi!
Pimphinweise:
1. *-importe vermeiden.
2. ´file´ statt ´open´ nehmen
3. ´nummer += 1´ statt ´nummer = nummer +1´
So, wieso schreibst du nicht einfach
Ist ungetestet, aber so in etwa müsste es gehen.
Gruß, jj
Pimphinweise:
1. *-importe vermeiden.
2. ´file´ statt ´open´ nehmen
3. ´nummer += 1´ statt ´nummer = nummer +1´
So, wieso schreibst du nicht einfach
Code: Alles auswählen
if zu_suchendes_word in z:
print "%s wurde in Zeile %i gefunden" %(zu_suchendes_word, nummer)
Gruß, jj
2. ist umstritten. Laut Doku und Meister Guido ist `open()` zum öffnen von Dateien und `file` zum beerben zu bevorzugen.
[offtopic]
[/offtopic]
MfG EnTeQuAk
Was ist `beerben`? (also in Python )2. ist umstritten. Laut Doku und Meister Guido ist `open()` zum öffnen von Dateien und `file` zum beerben zu bevorzugen.
[/offtopic]
MfG EnTeQuAk
"beerben" heisst etwas von jemanden erben der etwas zu vererben hat. Was Vererbung in der objektorientierten Programmierung bedeutet, muss ich hoffentlich nicht erklären!?
-
- User
- Beiträge: 419
- Registriert: Sonntag 3. September 2006, 15:11
- Wohnort: in den weiten von NRW
- Kontaktdaten:
Ich dachte open soll irgendwann (version 3.0 ?) rausgenommen werden und komplett durch file ersetzt werden, da open und file doch komplett gleich sind und es nur um die Bezeichnung geht, die auf das, was geöffnet wir, hinweißt, oder?
Nein `open()` bleibt soweit ich weiss. Das eine ist eine Funktion, das andere ein Datentyp. Seit Python 2.5 sind das nicht mehr zwei verschiedene Namen für das selbe Objekt.
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Das haben viele gedacht (mich eingerechtnet), aber dazu hatten wir den file() vs. open()-Thread, wo das klargestellt wurde. Mit verschiedenen Meinungen dazu.schlangenbeschwörer hat geschrieben:Ich dachte open soll irgendwann (version 3.0 ?) rausgenommen werden und komplett durch file ersetzt werden, da open und file doch komplett gleich sind und es nur um die Bezeichnung geht, die auf das, was geöffnet wir, hinweißt, oder?
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice