Comment créer un nouveau fichier texte à l'aide de Python
Je pratique la gestion de .les fichiers txt en python. J'ai lu à ce sujet et a constaté que si j'essaie d'ouvrir un fichier qui n'existe pas encore, il va créer sur le même répertoire où le programme est en cours d'exécution. Le problème est que lorsque j'essaie de l'ouvrir, j'ai cette erreur:
IOError: [Errno 2] No such file or directory:
'C:\Users\myusername\PycharmProjects\Tests\copy.txt'.
J'ai même essayé de spécifier un chemin d'accès comme vous pouvez le voir dans l'erreur.
import os
THIS_FOLDER = os.path.dirname(os.path.abspath(__file__))
my_file = os.path.join(THIS_FOLDER, 'copy.txt')
- Nous ne pouvons pas vous dire quelle est l'erreur que vous avez dans votre code si vous ne nous montrez pas votre code.
- fait.
- Ce code ne soulève pas une erreur quand je le lance il en PyCharm?
- Ce code ne permet pas d'ouvrir un fichier, il crée un chemin d'accès de l'objet.
- L'IDE que vous utilisez n'est pas pertinent ici. Il n'a pas d'incidence sur le comportement du code Python que vous exécutez à partir d'elle.
- Ce code fonctionne sur mon ordinateur si je le remplacer par un nom de fichier pour
__file__
. Il crée une chaîne de caractères.'/Users/myusername/copy.txt'
dans mon cas - Son problème n'est pas sur le code, il montre (où il obtient le chemin d'accès du fichier), le problème qu'il est à propos de l'ouverture du fichier, où il obtient une erreur.
Vous devez vous connecter pour publier un commentaire.
Semble que vous avez oublié le mode paramètre lors de l'appel de
open
, essayezw
:La valeur par défaut est
r
et échoue si le fichier n'existe pasD'autres options intéressantes sont
Voir le Doc pour Python2.7 ou Python3.6
-- EDIT --
Comme l'a déclaré chepner dans le commentaire ci-dessous, il est préférable de le faire avec un
with
déclaration (il garantit que le fichier sera fermé)file
objet doit être utilisé avec unwith
déclaration au lieu de le fermer explicitement.Il y a beaucoup plus de méthodes, mais ces deux sont les plus communs. Espérons que cela a aidé!
f.close()
lors de l'utilisation dewith open(...)
.