Wie kann man Python einchecken, wenn String in einer Textdatei ist und die Zeile ausdruckt?

Was ich versuche zu tun ist zu prüfen, ob diese Zeichenfolge in der Textdatei gefunden wird. Wenn es tut, möchte ich, dass es diese Zeile ausdruckt, sonst eine Nachricht ausdrucken.

Ich habe diesen Code bisher implementiert:

def check_string(string): w = raw_input("Input the English word: ") if w in open('example.txt').read(): for w.readlines(): print line else: print('The translation cannot be found!') 

Ich habe versucht, das zu implementieren, aber ich habe einen Syntaxfehler.

Es sagt:

Ungültige Syntax an der Zeile – für w.readlines ():

Jede Idee, wie man mit dieser Codezeile gehen kann?

2 Solutions collect form web for “Wie kann man Python einchecken, wenn String in einer Textdatei ist und die Zeile ausdruckt?”

Du solltest so etwas ausprobieren:

 import re def check_string(): #no need to pass arguments to function if you're not using them w = raw_input("Input the English word: ") #open the file using `with` context manager, it'll automatically close the file for you with open("example.txt") as f: found = False for line in f: #iterate over the file one line at a time(memory efficient) if re.search("\b{0}\b".format(w),line): #if string found is in current line then print it print line found = True if not found: print('The translation cannot be found!') check_string() #now call the function 

Wenn du nach exakten Worten suchst, anstatt nur Sub-String, dann würde ich vorschlagen, regex hier zu verwenden.

Beispiel:

 >>> import re >>> strs = "foo bar spamm" >>> "spam" in strs True >>> bool(re.search("\b{0}\b".format("spam"),strs)) False 

Hier ist ein bisschen einfacheres Beispiel mit dem Betreiber:

 w = raw_input("Input the English word: ") # For Python 3: use input() instead with open('foo.txt') as f: found = False for line in f: if w in line: # Key line: check if `w` is in the line. print(line) found = True if not found: print('The translation cannot be found!') 

Wenn du die Position des Strings kennen möchtest, dann kannst du find() anstatt in Operator verwenden.

  • Schreiben von schön formatiertem Text in Python
  • So prüfen Sie, ob eine Liste von Zeichenfolgen in zwei separaten Dateien vorhanden ist
  • Python Tkinter Text Formatierung Marker
  • Anhängen an eine vorhandene Zeile in einer txt-Datei
  • Python Tkinter Text Widget mit Auto & Custom Scroll
  • Vergleich von zwei Textdateien und Entfernen von Duplikaten in Python
  • Drucken auf UTF-8 codierte Datei mit plattformabhängigen Zeilenumbrüchen?
  • Wie man bestimmte Datenzeilen aus einer großen Textdatei extrahiert
  • Extrahieren von Daten aus einer Textdatei mit Python
  • Wie lese ich den letzten MB einer sehr großen Textdatei
  • Konvertieren von Textdatei in HTML-Datei mit Python
  • Python ist die beste Programmiersprache der Welt.