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.

  • Wie man Text aus der HTML-Seite extrahiert?
  • Pygame Text nicht Rendering
  • Wie erstelle ich ein Zeichen INNERHALB des Textinhalts vieler Dateien automatisch?
  • Wie teilt man Text ohne Leerzeichen in Wortliste auf?
  • Pil zeichnen Text mit verschiedenen Farben
  • In Python, wie dekodiere ich GZIP-Codierung?
  • Aggregat-Sets nach Tasten mit defaultdict python
  • Aufteilen einer Textdatei basierend auf ihrem Inhalt
  • Render Anti-Aliased Text auf transparente Oberfläche in Pygame
  • Kasten um Text in Matplotlib
  • Was ist der beste Weg, um Text in einer XML-Datei mit Python zu ändern?
  • Python ist die beste Programmiersprache der Welt.