[PYTHON] Tag 4 der Erstellung eines Werkzeugs zur Erstellung von Operationsprotokollen

Tage 1 und 2 zum Erstellen eines Formatierungswerkzeugs für Betriebsprotokolle Tag 3 des Erstellens des Formatierungswerkzeugs für das Betriebsprotokoll

Beim Lesen der CSV ist ein Fehler aufgetreten

UnicodeDecodeError: 'utf-8' codec can't decode byte 0x83 in position 0: invalid start byte

CSV ist so (maskiert)

oplog20201112.csv


Benutzeridentifikation,Kundenname,Windows-Anmelde-ID,Terminal ID,IP Address,MAC Address,Domainname,Anmeldezeit,Abmeldezeit,Anmeldestatus,Aktion,Funktionsname,Name der Ausführungsdatei(Schale),Streit(Befehlszeile),Ausführungszeit,Ausführungsstatus
"all","client-name","works","client-name","xx.xx.xx.xx","xx-xx-xx-xx-xx-xx xx-xx-xx-xx-xx-xx xx-xx-xx-xx-xx-xx xx-xx-xx-xx-xx-xx xx-xx-xx-xx-xx-xx     xx-xx-xx-xx-xx-xx xx-xx-xx-xx-xx-xx xx-xx-xx-xx-xx-xx xx-xx-xx-xx-xx-xx xx-xx-xx-xx-xx-xx  xx-xx-xx-xx-xx-xx xx-xx-xx-xx-xx-xx ","123-456","2020/11/12 13:18:56","2020/11/12 13:23:38","Erfolg","Programm","Jobüberwachung","Job.exe","-context:*****","2020/11/12 13:19:23","Erfolg"
"all","client-name","works","client-name","xx.xx.xx.xx","xx-xx-xx-xx-xx-xx xx-xx-xx-xx-xx-xx xx-xx-xx-xx-xx-xx xx-xx-xx-xx-xx-xx xx-xx-xx-xx-xx-xx     xx-xx-xx-xx-xx-xx xx-xx-xx-xx-xx-xx xx-xx-xx-xx-xx-xx xx-xx-xx-xx-xx-xx xx-xx-xx-xx-xx-xx  xx-xx-xx-xx-xx-xx xx-xx-xx-xx-xx-xx ","123-456","2020/11/12 13:18:56","2020/11/12 13:23:38","Erfolg","Programm","Hauptmenü","Companyxx.exe","-cfg","2020/11/12 13:18:56","Erfolg"
"all","client-name","works","client-name","xx.xx.xx.xx","xx-xx-xx-xx-xx-xx xx-xx-xx-xx-xx-xx xx-xx-xx-xx-xx-xx xx-xx-xx-xx-xx-xx xx-xx-xx-xx-xx-xx     xx-xx-xx-xx-xx-xx xx-xx-xx-xx-xx-xx xx-xx-xx-xx-xx-xx xx-xx-xx-xx-xx-xx xx-xx-xx-xx-xx-xx  xx-xx-xx-xx-xx-xx xx-xx-xx-xx-xx-xx ","123-456","2020/11/12 13:18:56","2020/11/12 13:23:38","Erfolg","Programm","Systemeinstellung","Maintenance.exe","-context:*****","2020/11/12 13:19:19","Erfolg"
"all","client-name","works","client-name","xx.xx.xx.xx","xx-xx-xx-xx-xx-xx xx-xx-xx-xx-xx-xx xx-xx-xx-xx-xx-xx xx-xx-xx-xx-xx-xx xx-xx-xx-xx-xx-xx     xx-xx-xx-xx-xx-xx xx-xx-xx-xx-xx-xx xx-xx-xx-xx-xx-xx xx-xx-xx-xx-xx-xx xx-xx-xx-xx-xx-xx  xx-xx-xx-xx-xx-xx xx-xx-xx-xx-xx-xx ","123-456","2020/11/12 13:18:56","2020/11/12 13:23:38","Erfolg","Batchjob","mst13","svc.sh","userid/password","2020/11/12 13:19:32","Erfolg"
"all","client-name","works","client-name","xx.xx.xx.xx","xx-xx-xx-xx-xx-xx xx-xx-xx-xx-xx-xx xx-xx-xx-xx-xx-xx xx-xx-xx-xx-xx-xx xx-xx-xx-xx-xx-xx     xx-xx-xx-xx-xx-xx xx-xx-xx-xx-xx-xx xx-xx-xx-xx-xx-xx xx-xx-xx-xx-xx-xx xx-xx-xx-xx-xx-xx  xx-xx-xx-xx-xx-xx xx-xx-xx-xx-xx-xx ","123-456","2020/11/12 13:18:56","2020/11/12 13:23:38","Erfolg","Batchjob","mst13","test.sh","userid/password 0 0","2020/11/12 13:19:29","Erfolg"
"all","client-name","works","client-name","xx.xx.xx.xx","xx-xx-xx-xx-xx-xx xx-xx-xx-xx-xx-xx xx-xx-xx-xx-xx-xx xx-xx-xx-xx-xx-xx xx-xx-xx-xx-xx-xx     xx-xx-xx-xx-xx-xx xx-xx-xx-xx-xx-xx xx-xx-xx-xx-xx-xx xx-xx-xx-xx-xx-xx xx-xx-xx-xx-xx-xx  xx-xx-xx-xx-xx-xx xx-xx-xx-xx-xx-xx ","123-456","2020/11/12 13:18:56","2020/11/12 13:23:38","Erfolg","Batchjob","mst13","test.sh","userid/password 0 0","2020/11/12 13:19:30","Erfolg"
"all","client-name","works","client-name","xx.xx.xx.xx","xx-xx-xx-xx-xx-xx xx-xx-xx-xx-xx-xx xx-xx-xx-xx-xx-xx xx-xx-xx-xx-xx-xx xx-xx-xx-xx-xx-xx     xx-xx-xx-xx-xx-xx xx-xx-xx-xx-xx-xx xx-xx-xx-xx-xx-xx xx-xx-xx-xx-xx-xx xx-xx-xx-xx-xx-xx  xx-xx-xx-xx-xx-xx xx-xx-xx-xx-xx-xx ","123-456","2020/11/12 13:18:56","2020/11/12 13:23:38","Erfolg","Batchjob","mst13","out.sh","userid/password %JAVA% 0","2020/11/12 13:19:31","Erfolg"
"all","client-name","works","client-name","xx.xx.xx.xx","xx-xx-xx-xx-xx-xx xx-xx-xx-xx-xx-xx xx-xx-xx-xx-xx-xx xx-xx-xx-xx-xx-xx xx-xx-xx-xx-xx-xx     xx-xx-xx-xx-xx-xx xx-xx-xx-xx-xx-xx xx-xx-xx-xx-xx-xx xx-xx-xx-xx-xx-xx xx-xx-xx-xx-xx-xx  xx-xx-xx-xx-xx-xx xx-xx-xx-xx-xx-xx ","123-456","2020/11/12 13:18:56","2020/11/12 13:23:38","Erfolg","Programm","Job Management","quevw.exe","-context:*****","2020/11/12 13:19:20","Erfolg"
"all","client-name","works","client-name","xx.xx.xx.xx","xx-xx-xx-xx-xx-xx xx-xx-xx-xx-xx-xx xx-xx-xx-xx-xx-xx xx-xx-xx-xx-xx-xx xx-xx-xx-xx-xx-xx     xx-xx-xx-xx-xx-xx xx-xx-xx-xx-xx-xx xx-xx-xx-xx-xx-xx xx-xx-xx-xx-xx-xx xx-xx-xx-xx-xx-xx  xx-xx-xx-xx-xx-xx xx-xx-xx-xx-xx-xx ","123-456","2020/11/12 13:18:56","2020/11/12 13:23:38","Erfolg","Programm","batchjob jobid:498298","test.sh","userid/password 0 0","2020/11/12 13:19:56","Erfolg"
"all","client-name","works","client-name","xx.xx.xx.xx","xx-xx-xx-xx-xx-xx xx-xx-xx-xx-xx-xx xx-xx-xx-xx-xx-xx xx-xx-xx-xx-xx-xx xx-xx-xx-xx-xx-xx     xx-xx-xx-xx-xx-xx xx-xx-xx-xx-xx-xx xx-xx-xx-xx-xx-xx xx-xx-xx-xx-xx-xx xx-xx-xx-xx-xx-xx  xx-xx-xx-xx-xx-xx xx-xx-xx-xx-xx-xx ","123-456","2020/11/12 13:18:56","2020/11/12 13:23:38","Erfolg","Programm","batchjob jobid:498301","svc.sh","userid/password","2020/11/12 13:21:39","Erfolg"

Nun, Japanisch war enthalten. Benötigt Codierung.

https://techacademy.jp/magazine/21128

Es spielt überhaupt keine Rolle

Verarbeiten Sie Daten mit Pandas basierend auf der CSV-Datei der neuen Python-Corona

Deshalb sieht es interessant aus.

Nachdem der Text mit einem Editor zur Bestätigung in UTF-8 geändert wurde, war das Lesen erfolgreich. Oh, möchten Sie nach Datum und Uhrzeit sortieren?

firstpandas.py


import pandas as pd

df = pd.read_csv('oplog20201112.csv')
print(df)

df_s = df.sort_values('Ausführungszeit')
print(df_s)

Infolgedessen werden sie ganz normal nach Ausführungszeit sortiert. Das war's. Speichern wir die CSV unter einem anderen Namen.

Kehren Sie zu dieser Seite zurück. https://note.nkmk.me/python-pandas-to-csv/

firstpandas.py


import pandas as pd

df = pd.read_csv('oplog20201112.csv')
# print(df)

df_s = df.sort_values('Ausführungszeit')
# print(df_s)

df_s.to_csv('out.csv')

Das vorherige Codierungsproblem wird unten behandelt. https://note.sngklab.jp/?p=435

firstpandas.py


import pandas as pd

df = pd.read_csv('oplog20201112.csv',encoding="SHIFT-JIS")
print(df)

df_s = df.sort_values('Ausführungszeit')
print(df_s)

df_s.to_csv('out.csv')

Ich möchte die Spalte für die Ausführungszeit ganz links platzieren

Dann, wie man die Spalte bewegt. https://note.nkmk.me/python-pandas-reindex/

Wie Sie sehen können, sieht es so aus.

firstpandas.py


import pandas as pd

df = pd.read_csv('oplog20201112.csv',encoding="SHIFT-JIS")
# print(df)
df_s = df.sort_values('Ausführungszeit')
# print(df_s)
df_s = df_s.reindex(columns=['Ausführungszeit', 
                             'Funktionsname', 
                             'Benutzeridentifikation', 
                             'Kundenname', 
                             'Windows-Anmelde-ID', 
                             'Terminal ID', 
                             'Anmeldezeit', 
                             'Abmeldezeit'])
df_s.to_csv('out.csv')

Werkzeugverteilung

Ich möchte auch sehen, wie ich es einfacher machen kann. Es gibt so etwas wie Pyinstaller.

[pyInstaller # Lassen Sie es uns tatsächlich erstellen](https://qiita.com/hirohiro77/items/466e411fa41f144c8b2a#%E5%AE%9F%E9%9A%9B%E3%81%AB%E4%BD%9C% E6% 88% 90% E3% 81% 97% E3% 81% A6% E3% 81% BF% E3% 82% 88% E3% 81% 86)

set path=C:\Users\works\AppData\Local\Programs\Python\Python39\Scripts;%path%

Bitte beachten Sie, dass dies zuerst erforderlich ist. An der Eingabeaufforderung

C:\workspaces\playground>pyinstaller firstpandas.py --onefile
67 INFO: PyInstaller: 4.0
67 INFO: Python: 3.9.0
69 INFO: Platform: Windows-10-10.0.19041-SP0
70 INFO: wrote C:\workspaces\playground\firstpandas.spec
(Unterlassung)

Dann wurde Exe erfolgreich abgeschlossen.

image.png

https://news.mynavi.jp/article/python-28/

Recommended Posts

Tag 4 der Erstellung eines Werkzeugs zur Erstellung von Operationsprotokollen
Tag 3 der Erstellung eines Werkzeugs zur Erstellung von Operationsprotokollen