** 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
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
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
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.
def contain_text_in_file(filepath, text):
with open(filepath) as f:
return any(text in line for line in f)
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
Datei öffnen und das entsprechende Dateiobjekt zurückgeben.
Gibt True zurück, wenn ein Element von iterable true ist. Gibt False zurück, wenn iterable leer ist. Entspricht dem folgenden 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
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
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.
Datei öffnen und das entsprechende Dateiobjekt zurückgeben.
Recommended Posts