2010-04-07 7 views
1

Le fichier de commandes est quelque chose comme ceci, je mets le python dans un répertoire qui a le caractère ESPACE dans son chemin.Exécution du fichier de commandes python avec un caractère ESPACE

 
C:\"Documents and Settings"\Administrator\Desktop\bracket\python\python 
C:\\"Documents and Settings"\\Administrator\\Desktop\\bracket\\[10,20]\\brackettest.py 

Lorsque j'exécute celui-ci, j'obtiens cette erreur.

 
C:\Documents and Settings\Administrator\Desktop\bracket\python\python: can't ope 
n file 'C:\Documents and Settings\\Administrator\\Desktop\\bracket\\[10,20]\\bra 
ckettest.py': [Errno 2] No such file or directory 
C:\Documents and Settings\Administrator\Desktop\bracket> 

Qu'est-ce qui pourrait ne pas fonctionner?

Envelopper le chemin ne résout pas ce problème.

 
"C:\\Documents and Settings\\Administrator\\Desktop\\bracket\\[10,20]\\brackettest.py" 

Les parenthèses ('[]') sont-elles la cause du problème? Sur Mac, python fonctionne bien avec le caractère de support.

Répondre

5

Il n'y a pas backslash dans la console Windows, il faut lire

"C:\Documents and Settings\Administrator\Desktop\bracket\python\python" "C:\Documents and Settings\Administrator\Desktop\bracket\[10,20]\brackettest.py" 
+0

Cela fonctionne définitivement. Assurez-vous que le fichier existe vraiment. Vous pouvez utiliser la complétion de tabulation à l'invite de la console ou 'dir' dans le répertoire' [10,20] '. – AndiDog

+0

Oui, ça a marché. J'ai quelque chose de mal. Merci pour l'aide. – prosseek

+0

Vous ne pouvez utiliser l'achèvement de tabulation sur [10,20] que si la citation ouverte est déjà là, fwiw. J'ai essayé à partir d'un chemin relatif, sans guillemets, et cmd.exe traité l'élément entre crochets comme si ce n'était pas encore là. "cd c: \ test \\ [10,20] " m'a donné le premier élément du dossier c: \ test bloqué à la fin de [10,20]. Pas entièrement utile, mais si je mets une citation avant c: alors cela a fonctionné correctement. –

2

On dirait que vous aviez presque; Il suffit de remplacer les doubles barres par des barres obliques simples.
Si vous n'êtes jamais sûr et avez besoin d'un rappel du bon format. Essayez d'utiliser la touche de tabulation pour compléter automatiquement votre dossier ou votre nom de fichier. Par exemple, à l'invite de commande, tapez simplement:
C: \ docu
puis appuyez sur la touche de tabulation et le nom du dossier sera automatiquement complété. De là, vous tapez simplement le reste. Chaque fois que vous voulez compléter automatiquement le reste du dossier ou du nom de fichier, appuyez simplement sur la touche de tabulation. Cela produira toujours un chemin correctement spécifié qui peut être exécuté.

0

Pouvez-vous

cd "\Documents and Settings" 
cd "\Documents and Settings\Administrator\Desktop\bracket\python\python" 
cd "\Documents and Settings\Administrator\Desktop\bracket\" 
cd "\Documents and Settings\Administrator\Desktop\bracket\[10,20]\" 

Si tout cela fonctionne, ne

cd "\Documents and Settings\Administrator\Desktop\bracket\python\python" 
python "\Documents and Settings\Administrator\Desktop\bracket\[10,20]\brackettest.py" 

Pourquoi avez-vous un tel bizarre, dirname non descriptifs ([10,20])? Je ne savais même pas que NTFS a permis cela.

+0

@voyager - Ce n'est pas ma faute, je n'ai pas d'autre choix que d'utiliser le répertoire idiot du système de test. :( – prosseek

1
path = r"C:\Users\mememe\Google Drive\Programs\Python\file.csv" 

Fermeture du chemin dans r "string" aussi résolu ce problème très bien. Cela indique à Python qu'il est exactement cette chaîne et évite les erreurs d'antislash et d'espace. Je l'utilise pour mes fichiers car il me permet de copier et coller directement à partir de la barre de navigation en haut de la fenêtre.

Questions connexes