Jours 1 et 2 de la création d'un outil de formatage du journal des opérations Jour 3 de la création de l'outil de formatage du journal des opérations
UnicodeDecodeError: 'utf-8' codec can't decode byte 0x83 in position 0: invalid start byte
CSV est comme ça (masqué)
oplog20201112.csv
Identifiant d'utilisateur,Nom du client,ID de connexion Windows,ID du terminal,IP Address,MAC Address,Nom de domaine,Heure de connexion,Heure de déconnexion,Statut de connexion,action,Nom de la fonction,Nom du fichier d'exécution(coquille),argument(Ligne de commande),Temps d'exécution,État d'exécution
"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","Succès","Programme","Suivi des travaux","Job.exe","-context:*****","2020/11/12 13:19:23","Succès"
"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","Succès","Programme","Menu principal","Companyxx.exe","-cfg","2020/11/12 13:18:56","Succès"
"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","Succès","Programme","Paramètres système","Maintenance.exe","-context:*****","2020/11/12 13:19:19","Succès"
"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","Succès","Batchjob","mst13","svc.sh","userid/password","2020/11/12 13:19:32","Succès"
"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","Succès","Batchjob","mst13","test.sh","userid/password 0 0","2020/11/12 13:19:29","Succès"
"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","Succès","Batchjob","mst13","test.sh","userid/password 0 0","2020/11/12 13:19:30","Succès"
"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","Succès","Batchjob","mst13","out.sh","userid/password %JAVA% 0","2020/11/12 13:19:31","Succès"
"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","Succès","Programme","Gestion des tâches","quevw.exe","-context:*****","2020/11/12 13:19:20","Succès"
"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","Succès","Programme","batchjob jobid:498298","test.sh","userid/password 0 0","2020/11/12 13:19:56","Succès"
"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","Succès","Programme","batchjob jobid:498301","svc.sh","userid/password","2020/11/12 13:21:39","Succès"
Eh bien, le japonais était inclus. Nécessite un encodage.
https://techacademy.jp/magazine/21128
Ça n'a pas d'importance du tout
Traitez les données avec des pandas sur la base du fichier csv du nouveau Python Corona
C'est pourquoi ça a l'air intéressant.
Une fois que le texte a été changé en UTF-8 avec un éditeur pour confirmation, la lecture a réussi. Oh, aimeriez-vous trier par colonne de date et d'heure tel quel?
firstpandas.py
import pandas as pd
df = pd.read_csv('oplog20201112.csv')
print(df)
df_s = df.sort_values('Temps d'exécution')
print(df_s)
En conséquence, ils ont été triés par heure d'exécution tout à fait normalement. Alors c'est tout. Sauvegardons le CSV sous un nom différent.
Revenez à cette page. 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('Temps d'exécution')
# print(df_s)
df_s.to_csv('out.csv')
Le problème d'encodage précédent est traité ci-dessous. 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('Temps d'exécution')
print(df_s)
df_s.to_csv('out.csv')
Puis comment déplacer la colonne. https://note.nkmk.me/python-pandas-reindex/
Comme vous pouvez le voir, cela ressemble à ça.
firstpandas.py
import pandas as pd
df = pd.read_csv('oplog20201112.csv',encoding="SHIFT-JIS")
# print(df)
df_s = df.sort_values('Temps d'exécution')
# print(df_s)
df_s = df_s.reindex(columns=['Temps d'exécution',
'Nom de la fonction',
'Identifiant d'utilisateur',
'Nom du client',
'ID de connexion Windows',
'ID du terminal',
'Heure de connexion',
'Heure de déconnexion'])
df_s.to_csv('out.csv')
Je veux aussi voir comment le rendre plus facile à utiliser. Il y a quelque chose qui s'appelle pyinstaller.
[pyInstaller # Créons-le réellement](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%
Veuillez noter que cela est requis en premier. À l'invite de commande
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
(Omission)
Ensuite, Exe a été terminé avec succès.
https://news.mynavi.jp/article/python-28/