Python Trova stringa nel file

Syed Moiz Haider 30 marzo 2021
  1. Usa il metodo File readlines() per trovare una stringa in un file in Python
  2. Usa il metodo File read() per cercare una stringa in un file in Python
  3. Usa il metodo find per cercare una stringa in un file in Python
  4. Usa il modulo mmap per cercare una stringa in un file in Python
Python Trova stringa nel file

Il tutorial spiega come trovare una stringa specifica in un file di testo in Python.

Usa il metodo File readlines() per trovare una stringa in un file in Python

Il metodo readlines() del file Pyton restituisce il contenuto del file diviso in una lista dalla nuova linea. Possiamo usare il cicli for per scorrere l’lista e usare l’operatore in per controllare se la stringa è nella linea in ogni iterazione.

Se la stringa si trova nella linea, restituisce True e interrompe il bucle. Se la stringa non viene trovata dopo aver ripetuto tutte le righe, alla fine restituisce False.

Di seguito viene fornito un codice di esempio per questo approccio:

file = open("temp.txt", "w")
file.write("blabla is nothing.")
file.close()


def check_string():
    with open("temp.txt") as temp_f:
        datafile = temp_f.readlines()
    for line in datafile:
        if "blabla" in line:
            return True  # The string is found
    return False  # The string does not exist in the file


if check_string():
    print("True")
else:
    print("False")

Produzione:

True

Usa il metodo File read() per cercare una stringa in un file in Python

Il metodo file read() restituisce il contenuto del file come un’intera stringa. Quindi possiamo usare l’operatore in per verificare se la stringa è nella stringa restituita.

Di seguito viene fornito un codice di esempio:

file = open("temp.txt", "w")
file.write("blabla is nothing.")
file.close()


with open("temp.txt") as f:
    if "blabla" in f.read():
        print("True")

Produzione:

True

Usa il metodo find per cercare una stringa in un file in Python

Un semplice metodo find può essere usato con il metodo read() per trovare la stringa nel file. Al metodo find viene passata la stringa richiesta. Restituisce 0 se la stringa viene trovata e -1 se la stringa non viene trovata.

Di seguito viene fornito un codice di esempio.

file = open("temp.txt", "w")
file.write("blabla is nothing.")
file.close()

print(open("temp.txt", "r").read().find("blablAa"))

Produzione:

-1

Usa il modulo mmap per cercare una stringa in un file in Python

Il modulo mmap può anche essere usato per trovare una stringa in un file in Python e può migliorare le prestazioni se la dimensione del file è relativamente grande. Il metodo mmap.mmap() crea un oggetto simile a una stringa in Python 2 che controlla solo il file implicito e non legge l’intero file.

Di seguito viene fornito un codice di esempio in Python 2:

# python 2

import mmap

file = open("temp.txt", "w")
file.write("blabla is nothing.")
file.close()

with open("temp.txt") as f:
    s = mmap.mmap(f.fileno(), 0, access=mmap.ACCESS_READ)
    if s.find("blabla") != -1:
        print("True")

Produzione:

True

Tuttavia, in Python3 e versioni successive, mmap non si comporta come l’oggetto simile a una stringa ma crea un oggetto bytearray. Quindi il metodo find cerca i byte e non le stringhe.

Di seguito viene fornito un codice di esempio per questo:

import mmap

file = open("temp.txt", "w")
file.write("blabla is nothing.")
file.close()

with open("temp.txt") as f:
    s = mmap.mmap(f.fileno(), 0, access=mmap.ACCESS_READ)
    if s.find(b"blabla") != -1:
        print("True")

Produzione:

True
Syed Moiz Haider avatar Syed Moiz Haider avatar

Syed Moiz is an experienced and versatile technical content creator. He is a computer scientist by profession. Having a sound grip on technical areas of programming languages, he is actively contributing to solving programming problems and training fledglings.

LinkedIn

Articolo correlato - Python String

Articolo correlato - Python File