Extrahieren Sie mit Python Zeichenfolgen aus Dateien

Einführung

** Was in diesem Artikel zu erklären ist ** Beispielcode für die folgenden Funktionen.

--Erstellen Sie eine Liste der Dateien im angegebenen Verzeichnis --Überprüfen Sie, ob der Text in der Datei eine bestimmte Zeichenfolge enthält

Entwicklungsumgebung

Erstellen Sie eine Liste der Dateien im angegebenen Verzeichnis

Code

def generate_file_list(dirpath_to_search):
    file_list = []
    for dirpath, dirnames, filenames in os.walk(dirpath_to_search):
        for filename in filenames:
             file_list.append(os.path.join(dirpath,filename))

    return file_list

wie benutzt man

Ein Beispiel, wenn Sie die Dateinamen unter sample1 mit der folgenden Verzeichnisstruktur rekursiv abrufen möchten.

Beispielverzeichnisstruktur


sample1/
├── dir01
│   ├── dir11
│   │   └── file21.txt
│   └── file11.txt
├── file01.txt
└── file02.txt

wie benutzt man


file_list = generate_file_list('sample1')
for file in file_list:
    print(file)

#Ausgabe
# sample1/file01.txt
# sample1/file02.txt
# sample1/dir01/file11.txt
# sample1/dir01/dir11/file21.txt

API verwendet

os.walk(top, topdown=True, onerror=None, followlinks=False)

Erstellen Sie Dateinamen unter dem Verzeichnisbaum, indem Sie den Baum von oben nach unten oder von unten nach oben scannen. Geben Sie ein Tupel (dirpath, dirnames, filenames) für jedes Verzeichnis (einschließlich top selbst) in der Verzeichnisstruktur ein, die im Verzeichnis top verwurzelt ist.

Finden Sie heraus, ob der Text in der Datei eine bestimmte Zeichenfolge enthält

Code

def contain_text_in_file(filepath, text):
    with open(filepath) as f:
        return any(text in line for line in f)

wie benutzt man

Ein Beispiel, wenn die Dateien "include.txt" und "not_contain.txt" wie unten gezeigt vorhanden sind und Sie die Datei kennen möchten, die "2020/02/02" in der Datei enthält.

contain.txt


Aktualisierungsdatum: 2020/02/02
Dieser Artikel befasst sich mit der Manipulation von Python-Dateien.

not_contain.txt


Aktualisierungsdatum: 2019/10/15
Dieser Artikel befasst sich mit der Manipulation von Python-Dateien.

wie benutzt man


filepath1 = './contain.txt'
text = '2020/02/02'
result1 = contain_text_in_file(filepath1, text)
print(result1) # True

filepath2 = './not_contain.txt'
text = '2020/02/02'
result2 = contain_text_in_file(filepath2, text)
print(result2) # False

API verwendet

open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)

Datei öffnen und das entsprechende Dateiobjekt zurückgeben.

any(iterable)

Gibt True zurück, wenn ein Element von iterable true ist. Gibt False zurück, wenn iterable leer ist. Entspricht dem folgenden Code:

Extrahieren Sie den Text in dem von einer bestimmten Zeichenfolge eingeschlossenen Bereich aus dem Text in der Datei

Code

import re

def extract_text_in_file(filepath, pattern_prev, pattern_next):
    extracted_text_array = []
    pattern = pattern_prev + '(.*)' + pattern_next
    with open(filepath) as f:
        lines = f.readlines()
        for line in lines:
            tmp_extracted_text_array = re.findall(pattern, line)
            extracted_text_array.extend(tmp_extracted_text_array)

    return extracted_text_array

wie benutzt man

Ein Beispiel, wenn es eine Datei mit dem Namen "file.txt" wie die folgende gibt und Sie den Datumsteil extrahieren möchten, der von "Aktualisierungsdatum" und "von" umgeben ist.

file.txt


Aktualisierungsdatum:2020/02/01 by taro
Dieser Artikel befasst sich mit der Manipulation von Python-Dateien.

Aktualisierungsdatum:2020/02/02 by jiro
Dieser Artikel befasst sich mit der Manipulation von Python-Dateien.

wie benutzt man


filepath = './file.txt'
pattern_prev = 'Aktualisierungsdatum:'
pattern_next = ' by'
extracted_text_array = extract_text_in_file(filepath, pattern_prev, pattern_next)

for extracted_text in extracted_text_array:
    print(extracted_text)

#Ausgabe
# 2020/02/01
# 2020/02/02

API verwendet

re.findall(pattern, string, flags=0)

Gibt alle eindeutigen Übereinstimmungen für Muster in Zeichenfolge als Liste von Zeichenfolgen zurück. Die Zeichenfolge wird von links nach rechts gescannt und Übereinstimmungen werden in der Reihenfolge zurückgegeben, in der sie gefunden wurden. Gibt eine Liste von Gruppen zurück, wenn das Muster mehr als eine Gruppe enthält. Wenn das Muster mehrere Gruppen hat, wird es eine Liste von Taples sein. Leere Übereinstimmungen sind im Ergebnis enthalten.

open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)

Datei öffnen und das entsprechende Dateiobjekt zurückgeben.

Recommended Posts

Extrahieren Sie mit Python Zeichenfolgen aus Dateien
Extrahieren Sie mit Python Text aus Bildern
Erlauben Sie Python, die Zeichenfolge der Eingabedatei aus dem Ordner auszuwählen
Vergleichen Sie Zeichenfolgen in Python
Strings in Python umkehren
OCR aus PDF in Python
Suchen Sie nach Zeichenfolgen in Dateien
So laden Sie Dateien von Selenium of Python in Chrome herunter
Importieren Sie Klassen in JAR-Dateien direkt aus dem Python-Skript
Extrahieren Sie mehrere Listenduplikate in Python
Verschieben von CSV-Dateien mit Python Teil 1
Bearbeiten Sie Dateien und Ordner in Python
Lesen und verwenden Sie Python-Dateien aus Python
Umgang mit JSON-Dateien in Python
Sortieren Sie große Textdateien in Python
[Anfänger] Extrahieren Sie Zeichenketten mit Python
Lesen Sie Dateien parallel zu Python
Erhalten Sie Wechselkurse von offenen Wechselkursen in Python
Spielen Sie eine Audiodatei von Python mit Interrupt ab
Ausgabebaumstruktur von Dateien in Python
Wiederbelebt von "kein Internetzugang" in Python
Verhindern Sie den doppelten Start von cron in Python
Geben Sie Anmerkungen für Python2 in Stub-Dateien ein!
# 5 [python3] Extrahiert Zeichen aus einer Zeichenfolge
Mit openssl verschlüsselte Dateien werden mit openssl aus Python entschlüsselt
Referenz der INI-Datei in Python oder Ruby
So extrahieren Sie einen Polygonbereich in Python
Automatisieren Sie Jobs, indem Sie Dateien in Python bearbeiten
Laden Sie Bilder von der URL-Liste in Python herunter
Holen Sie sich den Batteriestand von SwitchBot mit Python
Lesen und schreiben Sie JSON-Dateien mit Python
Beispiel für den Umgang mit EML-Dateien in Python
Massenersatz von Zeichenfolgen in Python-Arrays
Generieren Sie eine Klasse aus einer Zeichenfolge in Python
Generieren Sie mit Python eine C-Sprache aus dem S-Ausdruck
In Python von Markdown in HTML konvertieren
Laden Sie Dateien in jedem Format mit Python herunter
Abrufen des Metrikverlaufs von MLflow in Python
[Python] (Linie) Extrahieren Sie Werte aus Diagrammbildern
Quadtree in Python --2
CURL in Python
Metaprogrammierung mit Python
Python 3.3 mit Anaconda
Geokodierung in Python
SendKeys in Python
Metaanalyse in Python
Unittest in Python
Lesen aus Textdateien und SQLite mit Python (+ Pandas), R, Julia (+ DataFrames)
Zwietracht in Python
DCI in Python
SQL zu SQL
Quicksort in Python
nCr in Python
N-Gramm in Python
Programmieren mit Python
Plink in Python
Extrahieren Sie alle n Elemente aus einem Array (einer Liste) in Python und Ruby
Konstante in Python
Rufen Sie Optionen in Python sowohl aus JSON-Dateien als auch aus Befehlszeilenargumenten ab