Python: OSError: [Errno 2] Aucun fichier ou répertoire de ce type: ''
J'ai un 100 lignes, 3 ans python grattoir que maintenant bug. Lignes de départ sont:
import urllib, re, os, sys, time # line 1: import modules
os.chdir(os.path.dirname(sys.argv[0])) # line 2: all works in script's folder > relative address
# (rest of my script here!)
Lorsque vous exécutez,
$cd /my/folder/
$python script.py
Je reçois l'erreur:
python script.py
Traceback (most recent call last):
File "script.py", line 2, in <module>
os.chdir(os.path.dirname(sys.argv[0]))
OSError: [Errno 2] No such file or directory: ''
Comment dois-je lire cette erreur et que faire ?
source d'informationauteur Hugolpz
Vous devez vous connecter pour publier un commentaire.
Avez-vous remarqué que vous ne recevez pas le message d'erreur si vous exécutez
au lieu de
C'est parce que
sys.argv[0]
va lire./script.py
dans le premier cas, ce qui donneos.path.dirname
quelque chose à travailler avec. Lorsque vous ne spécifiez pas un chemin,sys.argv[0]
lit simplementscript.py
etos.path.dirname
ne peut pas déterminer un chemin.Utilisation
os.path.abspath()
:sys.argv[0]
dans votre cas est juste un nom de script, pas de dossier, de sorteos.path.dirname()
retourne une chaîne vide.os.chemin d'accès.abspath()
tourne que dans un chemin d'accès absolu avec le nom de répertoire.J'ai eu cette erreur parce que j'étais en fournissant une chaîne d'arguments à
subprocess.call
au lieu d'un tableau d'arguments. Pour éviter cela, utilisezshlex.split
: