Étude de Python Hour9: lecture et écriture de fichiers
- Quand j'ai essayé de faire quelque chose avec Python, j'ai d'abord cherché un exemple de script et je l'ai exécuté d'une manière ou d'une autre,
- 7 heures, je veux accéder à l'API REST avec exécution automatique, vérifier le résultat et même faire fonctionner la VM
- Si vous y réfléchissez, ce sera 10 fois plus de 7 heures.
- Cette fois, lisez et écrivez des fichiers. Il semble qu'il sera possible de gérer les fichiers CSV et JSON
Matériel d'apprentissage
- Apprenez les bases en une seule journée! Super introduction Python
- https://a.r10.to/hbHMiv
Messages passés
environnement
- Windows
- Série Python Ver3
La lecture et l'écriture de fichiers sont identiques à celles d'un éditeur de texte! C'est important
- C'est la même chose pour n'importe quel langage de programmation, mais la lecture et l'écriture de fichiers sont les suivantes
- Ouvrez le fichier
- Lire et écrire
- Fermez le fichier
-
seulement ça! !!
-
Pour Python
- Spécifiez le mode (lecture (r), ajout (a), écrasement (w)) lors de l'ouverture ou de l'ouverture avec la fonction d'ouverture.
- Lisez et écrivez en utilisant la méthode read, etc.
- Fermer avec la méthode close
Lire un fichier texte
- Lire un fichier texte
- Lorsque vous utilisez normalement un éditeur de texte sur votre ordinateur, l'ouverture d'un fichier avec le menu "Ouvrir" affichera le contenu du fichier à l'écran, mais en Python vous pouvez l'ouvrir avec la fonction d'ouverture.
- Vous obtiendrez un "objet fichier" lorsque vous l'ouvrirez avec la fonction ouverte.
Essayez d'ouvrir le fichier
- Jetez un œil au processus en mode interactif
C:\script>python
Python 3.8.0 (tags/v3.8.0:fa919fd, Oct 14 2019, 19:37:50) [MSC v.1916 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>>
>>> fin = open('aaa.txt', 'r')#aaa avec fonction ouverte.Ouvrez txt en mode lecture. fin est un objet fichier
>>> print(fin)
<_io.TextIOWrapper name='aaa.txt' mode='r' encoding='cp932'>
>>>
>>> #Lorsque vous imprimez un objet, le nom et le mode du fichier chargé(r)Est affiché. * Le contenu n'est pas affiché
- Lit un objet fichier appelé fin.
Essayez de lire le contenu du fichier
C:\script>python
Python 3.8.0 (tags/v3.8.0:fa919fd, Oct 14 2019, 19:37:50) [MSC v.1916 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>>
>>> fin = open('aaa.txt', 'r')
>>> print(fin)
<_io.TextIOWrapper name='aaa.txt' mode='r' encoding='cp932'>
>>>
>>> text = fin.read() #Lire l'intégralité du contenu du fichier avec la méthode read
>>> print(text)
aaa
bbb
ccc
>>>
Fermer une fois terminé
C:\script>python
Python 3.8.0 (tags/v3.8.0:fa919fd, Oct 14 2019, 19:37:50) [MSC v.1916 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>>
>>> fin = open('aaa.txt', 'r')
>>> print(fin)
<_io.TextIOWrapper name='aaa.txt' mode='r' encoding='cp932'>
>>>
>>> text = fin.read()
>>> print(text)
aaa
bbb
ccc
>>>fin.close() #Si vous ne le fermez pas, il continuera à utiliser les ressources du système d'exploitation
>>>
Ajouter au fichier
- Essayez d'ajouter au fichier de la même manière.
>>> fadd = open('aaa.txt', 'a') #Ouvrir en mode ajout
>>> fadd.write('write add text\n') #Ajouter du texte
>>> fadd.close() #Fermer le fichier
>>>
>>>
>>>
>>> fin = open('aaa.txt', 'r') #Jetez un œil au contenu du fichier comme vous l'avez fait au début
>>> text = fin.read()
>>> print(text)
aaa
bbb
ccc
write add text #Vous pouvez voir qu'il a été ajouté
>>>
Utiliser l'entrée utilisateur
- Arguments lors de l'exécution du programme sur la ligne de commande, invitant l'utilisateur à entrer au milieu du programme et utilisant les valeurs.
Entrée par argument
C:\script>test50_print_arg.py hogeo hoge2 #Si vous passez deux arguments
['C:\\script\\test50_print_arg.py', 'hogeo', 'hoge2'] #Peut être utilisé pendant le programme
C:\script>
Contenu du script exécuté
import sys
print(sys.argv) #C'est un programme qui ne produit que des arguments
Lisez le fichier avec les arguments de ligne de commande
- Généralement, les choses variables telles que les noms de fichiers ne sont pas polyvalentes pour écrire directement dans le code, alors passons-le comme argument
Script pour lire le fichier spécifié par l'argument
import sys
fin = open(sys.arg[1], 'r')
print(fin.read())
fin.close()
Résultat d'exécution
C:\script>test51_print_argfiles.py aaa.txt
aaa.txt
aaa
bbb
cccwrite add text
- Dans ce cas, s'il y a un argument invalide, le traitement s'arrêtera, donc traitons l'erreur dans le programme qui est censée être passée en argument.
- Passons au traitement général de la vérification des arguments.
Script pour lire le fichier spécifié par l'argument (avec gestion des erreurs)
import sys
if len(sys.argv) < 2: #Un argument de gestion des erreurs (inférieur à)
print ('Error!! Please input filename')
exit()
FILE_NAME = sys.argv[1]
fin = open(FILE_NAME, 'r')
print(fin.read())
fin.close()
Résultat d'exécution
C:\script>test52_print_argfiles2 ー.py
Error!! Please input filename #C'est mieux que l'erreur inorganique de Python.
C:\script>test52_print_argfiles2 ー.py aaa.txt
aaa
bbb
C:\script>
Invite à saisir au milieu du programme
- Si vous utilisez la fonction d'entrée, le programme vous demandera une entrée.
- La valeur de retour de la fonction d'entrée peut être traitée comme une chaîne de caractères.
Entrez le nom du fichier et affichez le contenu du fichier (veuillez enregistrer en UTF-8 pour le japonais)
print('Phtyon Start!!')
file_name = input('Veuillez saisir le nom du fichier. saisir le nom fin= ')
fin = open(file_name, 'r')
print(fin.read())
fin.close()
Résultat d'exécution
C:\script>test53_input.py
Phtyon Start!!
Veuillez saisir le nom du fichier. saisir le nom fin= aaa.txt
aaa
bbb
C:\script>
Ce résumé
- J'ai toujours été coincé avec des E / S de fichiers dans chaque langue, mais c'était facile à gérer. Le programme est le même qu'un éditeur de texte normal!
- Je pense qu'il est plus courant de lire et de traiter que d'écrire, alors j'espère pouvoir le faire.
- Si vous jetez un coup d'œil rapide ici, cela ressemble à la première étape pour le maîtriser.
Pour les citations / Lightning Talk
- Un programme avec un haut degré de liberté qui a des arguments et une entrée utilisateur nécessite une gestion des erreurs. difficile