web-dev-qa-db-fra.com

Définissez le répertoire de travail dans Python / Spyder pour qu'il soit reproductible

Venant de R, utiliser setwd pour changer le répertoire est un gros no-no contre la reproductibilité car d'autres n'ont pas la même structure de répertoire que la mienne. Par conséquent, il est recommandé d'utiliser un chemin relatif depuis l'emplacement du script.

Les IDE compliquent légèrement cela car ils définissent leur propre répertoire de travail. Dans Rstudio, je peux facilement contourner ce problème avec les projets de Rstudio, en définissant le répertoire du projet comme mon dossier de script.

Avec Python et Spyder, il ne semble pas y avoir de solution. Spyder n'a pas de fonctionnalité comme le projet de Rstudio. Définir le répertoire à l'emplacement du script ne fait pas travailler tout en faisant une analyse interactive (depuis __file__ n'est pas disponible).

Que faire pour que le répertoire de travail de Python/Spyder soit reproductible?

12
Heisenberg

Pour ce faire automatiquement, mettez ceci au début de votre script:

from os import chdir, getcwd
wd=getcwd()
chdir(wd)
7
OSagnostic

En attendant, vous pouvez utiliser os.chdir

import os
os.chdir('C:\Users\me\Documents')
4
NinComPoop

Il semble qu'ils aient considéré cela comme une fonctionnalité de Spyder basée sur ce ticket GitHub, mais il attend toujours sa mise en œuvre à la mi-mai:

Nous pourrions ajouter une option à la boîte de dialogue Exécuter pour définir automatiquement le répertoire de travail sur celui dans lequel votre script est exécuté.

Cependant, quelqu'un d'autre devra le mettre en œuvre. Nous sommes assez occupés avec d'autres choses pour le moment, désolé.

https://github.com/spyder-ide/spyder/issues/3154

@ ccordoba12 ccordoba12 a ajouté ceci à la liste des jalons le 14 mai

2
Hack-R

J'ai essayé ça et ça marche.

import os
abspath = os.path.abspath('') ## String which contains absolute path to the script file
os.chdir(abspath) ## Setting up working directory
2
Wojciech Pawlik

Eh bien, il y a beaucoup de choses que vous pouvez essayer! 1. Remplacez le répertoire par le répertoire actuel dans la barre d'outils. 2. Remplacez le répertoire global par le répertoire actuel dans Préférences> Répertoire de travail global. Cliquez sur le bouton radio "le répertoire de fichiers actuel".

J'espère que ça aide!

0
Akash Mantry