Anwendung zum Anzeigen und Durchsuchen lokaler Memos (Tagebuch) in Python

Ich war lange nicht mehr im Programm, aber mein Wunsch, etwas zu machen, hat seine Grenzen erreicht Es macht nicht viel Sinn, es selbst zu machen Es würde eine gute Rehabilitation und Übung werden, also fing ich an, es zu machen.

Die Dinge (geplant), die wir realisieren wollen, sind wie folgt. -Sie können die Dateien in einem bestimmten Verzeichnis auflisten (auch den Inhalt anzeigen) -Keyword-Suche (regulärer Ausdruck) ist möglich

Ich habe den GUI-Teil noch nicht gemacht, aber ich konnte suchen. Die Komposition ist bisher so.

Quelldatei Funktion
AxMemoBrowser.py Körper. Rufen Sie an, wenn exe
PyCMemo.py Klassen, die Befehle implementieren, die CUI entsprechen
PyCBrowser.py Klasse, die um die GUI implementiert
PyCSearchResult.py Klasse zum Speichern von Suchergebnissen

Wie folgt implementiert. Ich bin neu darin, daher gibt es wahrscheinlich viele bessere Implementierungen.

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
'''

#Importieren Sie die erforderlichen Module
import os;
import sys;
import re;
import codecs;


class PyCMemo:
    def __init__(self,root_dir=''):
        #Initialisierung der Klassenmitglieder
        print('[PyCMemo.__init__]');
        self.pwd = '';                  #Stammverzeichnis bei der Suche
        self.file_list = [];            #Liste der gesuchten Dateien
        self.pattern = [];              #Suchbegriff(Kann normal ausgedrückt werden).リスト形式で最後尾が最新のSuchbegriff.
        self.isRead = 0;                #Flag zur Bestätigung, ob Sie auch nur einmal gesucht haben
        #Geben Sie das aktuelle Verzeichnis oder das angegebene Verzeichnis an
        if root_dir != '':              
            self.pwd = root_dir;
        else:
            self.pwd = '';                  

    def ReadDir(self):
        #Variable Initialisierung
        print('[PyCMemo.ReadDir]');
        if self.pwd == '':
            self.pwd = os.path.abspath(os.path.dirname(__file__));
        print(self.pwd);
        #Suchen Sie im aktuellen Verzeichnis.
        #Suche von oben nach unten.
        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);
        #Suchergebnisse sortieren
        self.file_list.sort();
        #print(self.file_list);
                
    def SearchString(self,pattern):
        #Variable Initialisierung
        print('[PyCMemo.SearchString]');
        self.pattern.append(pattern);
        #Initialisierung der Suchmaschine für reguläre Ausdrücke
        ptn = re.compile(self.pattern[-1]);
        #Rufen Sie ReadDir auf, wenn Sie die Datei noch nie gelesen haben
        if self.isRead == 0: self.ReadDir(),
        self.isRead = 1;
        #Suchen Sie Dateien rekursiv
        for fname in self.file_list:
            print('=Suche starten=');
            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("Suche aufgrund eines Codierungsfehlers nicht möglich.")
                finally:
                    #Mach nichts unerwartetes.(Ursprünglich ist es notwendig, beispielsweise eine Ausnahme auszulösen)
                    pass
            finally:
                fp.close();
                print('=Suche Ende=')
    
                    

Übrigens habe ich von diesem Zeitpunkt an begonnen, den Code auf GitHub in die Praxis umzusetzen. https://github.com/ambitious-kuromame/AxMemoBrowser

Recommended Posts

Anwendung zum Anzeigen und Durchsuchen lokaler Memos (Tagebuch) in Python
[Einführung in die Udemy Python3 + -Anwendung] 36. Verwendung von In und Not
Zeigen Sie Zahlen und Zeichen an, die Variablen im Python-Druck zugewiesen sind
Funktionssynthese und Anwendung in Python
So zeigen Sie Bytes in Java und Python auf die gleiche Weise an
Suchen und spielen Sie YouTube-Videos mit Python
So zeigen Sie die neunundneunzig Tabelle in Python an
So zeigen Sie Hello World in Python an
Verwendung ist und == in Python
Implementierung des Partikelfilters durch Python und Anwendung auf das Zustandsraummodell
Empfangen und Anzeigen von HTML-Formulardaten in Python
Senden Sie eine Nachricht an Skype und Chatwork in Python
Schritte zum Entwickeln einer Webanwendung in Python
[Einführung in die Udemy Python3 + -Anwendung] 64. Namespace und Gültigkeitsbereich
Ich möchte den Fortschritt in Python anzeigen!
Zur Darstellung von Datum, Uhrzeit, Uhrzeit und Sekunden in Python
Wie man Autokorrelation und partielle Autokorrelation mit Python zeichnet
Dichotomie mit Python
Lineare Suche in Python
Binäre Suche in Python
[Einführung in die Udemy Python3 + -Anwendung] 35. Vergleichsoperatoren und logische Operatoren
Schreiben Sie Tests in Python, um die Abdeckung zu profilieren und zu überprüfen
[Python] So sortieren Sie Diktate in Listen und Instanzen in Listen
[Einführung in die Udemy Python3 + -Anwendung] 68. Importanweisung und AS
Suchen Sie rekursiv nach Dateien und Verzeichnissen in Python und geben Sie sie aus
Implementieren Sie die Suche nach Tiefenpriorität (DFS) und die Suche nach Breitenpriorität (BFS) in Python
Python Open CV hat versucht, das Bild im Text anzuzeigen.
Ein Skript, das bis zu 5 Sekunden zählt und in Blenders Python stoppt
So löschen Sie stdout in Python
So tauschen Sie Elemente in einem Array in Python aus und wie kehren Sie ein Array um.
Zeigen Sie UTM-30LX-Daten in Python an
Melden Sie sich auf der Website in Python an
[Einführung in die Udemy Python3 + -Anwendung] 42. für Anweisung, break-Anweisung und continue-Anweisung
[Einführung in die Udemy Python3 + -Anwendung] 39. while-Anweisung, continue-Anweisung und break-Anweisung
Tipps zum Codieren kurz und einfach in Python zu lesen
Binäre Suche in Python / C ++
[Super einfach! ] So zeigen Sie den Inhalt von Wörterbüchern und Listen einschließlich Japanisch in Python an
Algorithmus in Python (Dichotomie)
Eine Standardmethode zum Entwickeln und Verteilen von Paketen in Python
Nützliche Tricks in Bezug auf Listen und Anweisungen in Python
Vergleich der Verwendung von Funktionen höherer Ordnung in Python 2 und 3
[Python] Zeigt die verstrichene Zeit in Stunden, Minuten und Sekunden an (00:00:00)
Stapel und Warteschlange in Python
Sprechen mit Python [Text zu Sprache]
[Einführung in Udemy Python3 + Application] 50. Positionsargumente, Schlüsselwortargumente und Standardargumente
Einführung in die Effektüberprüfung Schreiben der Kapitel 4 und 5 in Python
Objektorientiert in C-Sprache: "○ ✕ game" wurde überarbeitet und nach Python portiert
Unittest und CI in Python
Wie man in Python entwickelt
[Python] Suche nach Tiefenpriorität und Suche nach Breitenpriorität
Ausführen externer Shell-Skripte und -Befehle in Python
Versuchen Sie einfach, einen Webhook mit ngrok und Python zu erhalten
So melden Sie sich mit Python bei AtCoder an und senden automatisch
Post an Slack in Python
Eine Geschichte über alles von der Datenerfassung über die KI-Entwicklung bis hin zur Veröffentlichung von Webanwendungen in Python (3. KI-Entwicklung)
Bestimmen Sie das Datums- und Uhrzeitformat mit Python und konvertieren Sie es in Unixtime
Lösen der Einführung von AOJ in Algorithmen und Datenstrukturen in Python -Part1-
Verarbeitung zur Verwendung von notMNIST-Daten in Python (und versucht, sie zu klassifizieren)
So installieren Sie OpenCV in Cloud9 und führen es in Python aus