Extraire des chaînes de fichiers avec Python

introduction

** Que expliquer dans cet article ** Exemple de code pour les fonctionnalités suivantes.

--Créez une liste de fichiers sous le répertoire spécifié --Vérifiez si le texte du fichier contient une chaîne spécifique

Environnement de développement

--python 2.7 ou supérieur

Créer une liste de fichiers sous le répertoire spécifié

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

comment utiliser

Un exemple lorsque vous souhaitez acquérir de manière récursive les noms de fichiers sous sample1 avec la structure de répertoires suivante.

Exemple de structure de répertoire


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

comment utiliser


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

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

API utilisée

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

Créez des noms de fichiers sous l'arborescence des répertoires en scannant l'arborescence de haut en bas ou de bas en haut. Rendez un tuple (dirpath, dirnames, noms de fichiers) pour chaque répertoire (y compris le haut lui-même) dans l'arborescence de répertoires enracinée en haut du répertoire.

Découvrez si le texte du fichier contient une chaîne particulière

code

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

comment utiliser

Un exemple quand il y a des fichiers contain.txt et not_contain.txt comme indiqué ci-dessous et que vous voulez connaître le fichier qui contient" 2020/02/02 "dans le fichier.

contain.txt


Date de mise à jour: 2020/02/02
Cet article concerne la manipulation de fichiers python.

not_contain.txt


Date de mise à jour: 2019/10/15
Cet article concerne la manipulation de fichiers python.

comment utiliser


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 utilisée

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

Ouvre le fichier et renvoie l'objet fichier correspondant.

any(iterable)

Renvoie True si un élément de iterable est vrai. Renvoie False si iterable est vide. Équivalent au code suivant:

Extraire le texte dans la plage délimitée par une chaîne de caractères spécifique du texte du fichier

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

comment utiliser

Un exemple quand il y a un fichier appelé file.txt comme celui ci-dessous et que vous voulez extraire la partie de date entourée de" date de mise à jour "et" par ".

file.txt


Date de mise à jour:2020/02/01 by taro
Cet article concerne la manipulation de fichiers python.

Date de mise à jour:2020/02/02 by jiro
Cet article concerne la manipulation de fichiers python.

comment utiliser


filepath = './file.txt'
pattern_prev = 'Date de mise à jour:'
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)

#production
# 2020/02/01
# 2020/02/02

API utilisée

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

Renvoie toutes les correspondances uniques pour le modèle dans la chaîne sous forme de liste de chaînes. La chaîne est scannée de gauche à droite et les correspondances sont renvoyées dans l'ordre où elles sont trouvées. Renvoie une liste de groupes s'il y a plus d'un groupe dans le modèle. Si le motif a plusieurs groupes, ce sera une liste de taples. Les correspondances vides sont incluses dans le résultat.

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

Ouvre le fichier et renvoie l'objet fichier correspondant.

Recommended Posts

Extraire des chaînes de fichiers avec Python
Extraire du texte d'images avec Python
Autoriser Python à sélectionner la chaîne de caractères du fichier d'entrée dans le dossier
Comparer des chaînes en Python
Inverser les chaînes en Python
OCR à partir de PDF en Python
Rechercher des chaînes dans les fichiers
Comment télécharger des fichiers depuis Selenium of Python dans Chrome
Importez des classes dans des fichiers jar directement à partir d'un script Python
Extraire plusieurs doublons de liste en Python
Translocation de fichiers CSV avec Python Partie 1
Obtenir des données de Quandl en Python
Manipuler des fichiers et des dossiers en Python
Lire et utiliser des fichiers Python à partir de Python
Gestion des fichiers JSON en Python
Trier les gros fichiers texte en Python
[Débutant] Extraire des chaînes de caractères avec Python
Lire des fichiers en parallèle avec Python
Obtenez des taux de change à partir des taux de change ouverts en Python
Lire un fichier audio à partir de Python avec interruption
Arborescence de sortie des fichiers en Python
Relancé de "pas d'accès Internet" en Python
Empêcher le double lancement de cron en Python
Tapez les annotations pour Python2 dans les fichiers stub!
# 5 [python3] Extraire des caractères d'une chaîne de caractères
Décrypter les fichiers cryptés avec openssl depuis python avec openssl
Référence du fichier INI en Python ou Ruby
Comment extraire une zone de polygone en Python
Automatisez les tâches en manipulant des fichiers en Python
Télécharger des images à partir de la liste d'URL en Python
Obtenez le niveau de la batterie de SwitchBot avec Python
Lire et écrire des fichiers JSON avec Python
Exemple de gestion des fichiers eml en Python
Remplacement en bloc des chaînes dans les tableaux Python
Générer une classe à partir d'une chaîne en Python
Générer un langage C à partir d'une expression S avec Python
Convertir de Markdown en HTML en Python
Téléchargez des fichiers dans n'importe quel format en utilisant Python
Obtenir l'historique des métriques de MLflow en Python
[Python] (Line) Extraire les valeurs des images graphiques
Quadtree en Python --2
CURL en Python
Métaprogrammation avec Python
Python 3.3 avec Anaconda
Géocodage en python
SendKeys en Python
Méta-analyse en Python
Unittest en Python
Lecture à partir de fichiers texte et SQLite avec Python (+ Pandas), R, Julia (+ DataFrames)
Discord en Python
DCI en Python
sql à sql
tri rapide en python
nCr en python
N-Gram en Python
Programmation avec Python
Plink en Python
Extraire tous les n éléments d'un tableau (liste) en Python et Ruby
Constante en Python
Obtenez des options en Python à partir des fichiers JSON et des arguments de ligne de commande