Bonjour: J'essaie d'utiliser le Pandas
DataFrame.to_csv
méthode pour enregistrer un dataframe
dans un fichier csv
:
filename = './dir/name.csv'
df.to_csv(filename)
Cependant je reçois l'erreur:
IOError: [Errno 2] No such file or directory: './dir/name.csv'
Le to_csv
la méthode peut-elle créer le fichier s’il n’existe pas? C’est ce que j’ai l’intention de faire.
to_csv
crée le fichier s'il n'existe pas comme vous l'avez dit, mais ne crée pas de répertoires qui n'existent pas. Assurez-vous que le sous-répertoire dans lequel vous essayez de sauvegarder votre fichier a été créé en premier.
Je fais souvent quelque chose comme ça dans mon travail:
import os
outname = 'name.csv'
outdir = './dir'
if not os.path.exists(outdir):
os.mkdir(outdir)
fullname = os.path.join(outdir, outname)
df.to_csv(fullname)
Cela peut facilement être intégré à une fonction si vous devez le faire fréquemment.
Voici une autre façon de faire cela en utilisant l'excellente bibliothèque standard pathlib
module, qui rend généralement les choses plus ordonnées.
Comme expliqué ailleurs, to_csv
créera le fichier s'il n'existe pas, mais ne le fera pas créer les répertoires inexistants dans le chemin d'accès au fichier, vous devez donc d'abord vous assurer qu'ils existent.
from pathlib import Path
output_file = 'my_file.csv'
output_dir = Path('long_path/to/my_dir')
output_dir.mkdir(parents=True, exist_ok=True)
df.to_csv(output_dir / output_file) # can join path elements with / operator
Réglage parents=True
créera également tous les répertoires parents nécessaires et exist_ok=True
_ signifie que cela ne générera pas d'erreur si le répertoire existe déjà, vous n'avez donc pas à le vérifier explicitement séparément.