Application pour afficher et rechercher des mémos locaux (agenda) en Python

Je suis loin de la programmation depuis longtemps, mais mon désir de faire quelque chose a atteint sa limite Cela n'a pas beaucoup de sens de le faire vous-même Ça allait être une bonne pratique de rééducation, alors j'ai commencé à la faire.

Les choses (prévues) que nous prévoyons de réaliser sont les suivantes. -Vous pouvez lister les fichiers dans un certain répertoire (et afficher le contenu) -La recherche par mot-clé (expression régulière) est possible -Afficher le résultat sur GUI (Puis-je l'afficher sur un navigateur WEB?)

Je n'ai pas encore fait du tout la partie GUI, mais j'ai pu chercher. La composition est comme ça jusqu'à présent.

fichier source une fonction
AxMemoBrowser.py Corps. Appeler quand exe
PyCMemo.py Classes qui implémentent des commandes équivalentes à CUI
PyCBrowser.py Classe qui implémente autour de l'interface graphique
PyCSearchResult.py Classe d'enregistrement des résultats de recherche

Mis en œuvre comme suit. Je suis nouveau dans ce domaine, il y aura donc probablement de meilleures implémentations.

AxMemoBrowser.py


#!/usr/bin/env python
# -*- coding: utf-8 -*-
'''
Created on 2014/11/26

@author: kuromame
'''
from PyCMemo import PyCMemo

#cmemo = PyCMemo("/Users/kuromame/Desktop");
cmemo = PyCMemo();

#cmemo.ReadDir();
cmemo.SearchString("variable");

PyCMemo.py


#!/usr/bin/env python
# -*- coding: utf-8 -*-
'''
Created on 2014/11/26

@author: kuromame
'''

#Importer les modules requis
import os;
import sys;
import re;
import codecs;


class PyCMemo:
    def __init__(self,root_dir=''):
        #Initialisation des membres de la classe
        print('[PyCMemo.__init__]');
        self.pwd = '';                  #Répertoire racine lors de la recherche
        self.file_list = [];            #Liste des fichiers recherchés
        self.pattern = [];              #Rechercher un mot(Peut être exprimé normalement).リスト形式で最後尾が最新のRechercher un mot.
        self.isRead = 0;                #Indicateur pour confirmer si vous avez effectué une seule recherche
        #Spécifiez le répertoire actuel ou le répertoire spécifié
        if root_dir != '':              
            self.pwd = root_dir;
        else:
            self.pwd = '';                  

    def ReadDir(self):
        #Initialisation variable
        print('[PyCMemo.ReadDir]');
        if self.pwd == '':
            self.pwd = os.path.abspath(os.path.dirname(__file__));
        print(self.pwd);
        #Recherchez dans le répertoire actuel.
        #Recherche de haut en bas.
        for root, dirs, files in os.walk(self.pwd):
            for file_ in files:
                full_path = os.path.join(root, file_);
                self.file_list.append(full_path);
                print(full_path);
        #Trier les résultats de la recherche
        self.file_list.sort();
        #print(self.file_list);
                
    def SearchString(self,pattern):
        #Initialisation variable
        print('[PyCMemo.SearchString]');
        self.pattern.append(pattern);
        #Initialisation du moteur de recherche d'expression régulière
        ptn = re.compile(self.pattern[-1]);
        #Appelez ReadDir si vous n'avez jamais lu le fichier
        if self.isRead == 0: self.ReadDir(),
        self.isRead = 1;
        #Rechercher des fichiers de manière récursive
        for fname in self.file_list:
            print('=Lancer la recherche=');
            print(fname);
            try:
                fp = codecs.open(fname,'r','utf-8');
                line_num = 1;
                try:
                    for line in fp.readlines():
                        if ptn.search(line): print(fname,line_num,line),
                        line_num += 1;
                        #print(fname,line_num);
                except UnicodeDecodeError:
                    print("Impossible de rechercher en raison d'une erreur de codage.")
                finally:
                    #Ne faites rien de manière inattendue.(À l'origine, il est nécessaire de concevoir comme lancer une exception)
                    pass
            finally:
                fp.close();
                print('=Fin de la recherche=')
    
                    

Au fait, à partir de ce moment, j'ai commencé à mettre le code sur GitHub en pratique. https://github.com/ambitious-kuromame/AxMemoBrowser

Recommended Posts

Application pour afficher et rechercher des mémos locaux (agenda) en Python
[Introduction à l'application Udemy Python3 +] 36. Utilisation de In et Not
Afficher les nombres et les caractères affectés aux variables dans l'impression python
Synthèse de fonctions et application en Python
Comment afficher les octets de la même manière en Java et Python
Rechercher et lire des vidéos YouTube avec Python
Comment afficher la table quatre-vingt-dix-neuf en python
Comment afficher Hello World en python
Comment utiliser is et == en Python
Implémentation du filtre à particules par Python et application au modèle d'espace d'états
Recevoir et afficher les données de formulaire HTML en Python
Envoyer un message à Skype et Chatwork en Python
Étapes pour développer une application Web en Python
[Introduction à l'application Udemy Python3 +] 64. Espace de noms et portée
Je veux afficher la progression en Python!
Pour représenter la date, l'heure, l'heure et les secondes en Python
Comment tracer l'autocorrélation et l'autocorrélation partielle avec Python
Dichotomie avec Python
Recherche linéaire en Python
Recherche binaire en Python
[Introduction à l'application Udemy Python3 +] 35. Opérateurs de comparaison et opérateurs logiques
Écrire des tests en Python pour profiler et vérifier la couverture
[Python] Comment trier un dict dans une liste et une instance dans une liste
[Introduction à Udemy Python3 + Application] 68. Instruction d'importation et AS
Recherche récursive de fichiers et de répertoires en Python et sortie
Implémenter la recherche de priorité en profondeur (DFS) et la recherche de priorité de largeur (BFS) en python
Python Open CV a essayé d'afficher l'image sous forme de texte.
Un script qui compte jusqu'à 5 secondes et s'arrête dans le Python de Blender
Pour vider stdout en Python
Comment échanger des éléments dans un tableau en Python et comment inverser un tableau.
Afficher les données UTM-30LX en Python
Connectez-vous au site Web en Python
[Introduction à l'application Udemy Python3 +] 42. pour instruction, instruction break et instruction continue
[Introduction à l'application Udemy Python3 +] 39. instruction while, instruction continue et instruction break
Conseils pour coder courts et faciles à lire en Python
Recherche binaire en Python / C ++
[Super facile! ] Comment afficher le contenu des dictionnaires et des listes incluant le japonais en Python
Algorithme en Python (dichotomie)
Un moyen standard de développer et de distribuer des packages en Python
Astuces utiles liées à la liste et aux instructions en Python
Comparaison de l'utilisation des fonctions d'ordre supérieur dans Python 2 et 3
[Python] Afficher le temps écoulé en heures, minutes et secondes (00:00:00)
Pile et file d'attente en Python
Parler avec Python [synthèse vocale]
[Introduction à Udemy Python3 + Application] 50. Arguments de position, arguments de mots-clés et arguments par défaut
Introduction à la vérification des effets Rédaction des chapitres 4 et 5 en Python
Orienté objet en langage C: "○ ✕ game" a été refacturé et porté en Python
Unittest et CI en Python
Comment développer en Python
[Python] Recherche de priorité de profondeur et recherche de priorité de largeur
Comment exécuter des commandes et des scripts shell externes en python
Essayez simplement de recevoir un webhook avec ngrok et Python
Comment se connecter à AtCoder avec Python et soumettre automatiquement
Publier sur Slack en Python
Une histoire sur tout, de la collecte de données au développement d'IA et à la publication d'applications Web en Python (3. développement d'IA)
Déterminez le format de la date et de l'heure avec Python et convertissez-le en Unixtime
Résolution de l'introduction d'AOJ aux algorithmes et aux structures de données en Python -Partie1-
traitement pour utiliser les données notMNIST en Python (et essayé de les classer)
Comment installer OpenCV sur Cloud9 et l'exécuter en Python