web-dev-qa-db-fra.com

Comment créer un nouveau fichier texte avec Python

Je pratique la gestion de fichiers .txt en python. J'ai lu des articles à ce sujet et je constate que si j'essaie d'ouvrir un fichier qui n'existe pas encore, il le créera dans le même répertoire que celui où le programme est exécuté. Le problème vient du fait que lorsque j'essaie de l'ouvrir, j'obtiens cette erreur:

IOError: [Errno 2] Aucun fichier ou répertoire de ce type: "C:\Utilisateurs\myusername\PycharmProjects\Tests\copy.txt". 

J'ai même essayé de spécifier un chemin 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')
5
Just Half

On dirait que vous avez oublié le paramètre mode lorsque vous appelez open, essayez w:

file = open("copy.txt", "w") 
file.write("Your text goes here") 
file.close() 

La valeur par défaut est r et échouera si le fichier n'existe pas.

'r' open for reading (default)
'w' open for writing, truncating the file first

D'autres options intéressantes sont 

'x' open for exclusive creation, failing if the file already exists
'a' open for writing, appending to the end of the file if it exists

Voir Doc pour Python2.7 ou Python3.6

-- MODIFIER -- 

Comme indiqué par chepner dans le commentaire ci-dessous, il est préférable de le faire avec une instruction with (elle garantit la fermeture du dossier).

with open("copy.txt", "w") as file:
    file.write("Your text goes here")
21
Bentaye
# Method 1
f = open("Path/To/Your/File.txt", "w")   # 'r' for reading and 'w' for writing
f.write("Hello World from " + f.name)    # Write inside file 
f.close()                                # Close file 

# Method 2
with open("Path/To/Your/File.txt", "w") as f:   # Opens file and casts as f 
    f.write("Hello World form " + f.name)       # Writing
    f.close()                                   # Close file

Il existe beaucoup plus de méthodes, mais ces deux méthodes sont les plus courantes. J'espère que cela a aidé!

0
Tit Poplatnik