Python :[Erreur 3] Le système ne peut pas trouver le chemin d'accès spécifié:
import os
Current_Directory = os.getcwd() # Should be ...\archive
CORPUS_PATHS = sorted([os.path.join("archive", directories) for directories in os.listdir(Current_Directory)])
filenames = []
for items in CORPUS_PATHS:
filenames.append(sorted([os.path.join(CORPUS_PATHS, fn) for fn in os.listdir(items)]))
print filenames
Je suis en cours d'exécution de ce code à partir d'un fichier d'archives et dans les archives il y a plus de dossiers et dans chacun de ces dossiers, il y a un ou plusieurs fichiers au format texte. Je veux faire une liste qui inclut le chemin d'accès à chacun de ces dossiers. Toutefois, le message d'erreur suivant apparaît.
[Error 3] The system cannot find the path specified:
J'ai actuellement le script python où j'ai écrit ce code dans le même dossier que l'archive et il sera le déclencheur de cette erreur. Que dois-je faire pour arrêter cette erreur et obtenir tous les chemins d'accès aux fichiers.
Je suis assez mauvais à l'aide de mac os et je ne l'utilise pas souvent donc je m'excuse si c'est une question banale.
Modifier
import os
startpath = "archive"
corpus_path = sorted([os.path.join("archive/", directories) for directories in os.listdir(startpath)])
filenames = []
for items in corpus_path:
print items
path = [os.path.join(corpus_path, fn) for fn in os.listdir(items)]
print path
J'ai donc fait quelques progrès et maintenant j'ai corpus chemin est essentiellement une liste avec le chemin d'accès à tous les dossiers. Maintenant, tout ce que je suis en train de faire est d'obtenir tous les chemins vers les fichiers de texte à l'intérieur de ces dossiers mais je continue de courir dans des questions et je ne sais pas comment, mais une erreur comme
File "C:\Users\David\Anaconda\lib\ntpath.py", line 65, in join
result_drive, result_path = splitdrive(path)
File "C:\Users\David\Anaconda\lib\ntpath.py", line 116, in splitdrive
normp = p.replace(altsep, sep)
AttributeError: 'list' object has no attribute 'replace'
OriginalL'auteur David Yi | 2015-09-03
Vous devez vous connecter pour publier un commentaire.
Vous devez être sur une machine windows. L'erreur est à cause de l'os.listdir(). os.listdir() n'est pas bon chemin.
Et dans la ligne numéro 3, vous faites de l'os.chemin d'accès.join("archive", de répertoires).
Vous devriez vous joindre chemin d'accès complet, y compris le lecteur (C: ou D:) comme "c:/archive/foo: ou sur linux
"home/root/archive/foo"
Lecture Python os.chemin d'accès.rejoindre sur Windows
os.chemin d'accès.rejoignez l'Utilisation -
Edit:
Vous êtes de passage liste
corpus_path
à[os.path.join][2]
à la ligne 6. Qui provoque l'erreur! Remplacercorpus_path
avecitems
.J'ai créé le dossier d'archivage dans mon 'D:' Lecteur. En vertu de l'archive dossier que j'ai créé 3 dossiers toto1, foo2 et foo3. Chaque dossier contient 1 ou 2 fichier texte. Ensuite, j'ai testé votre code après modification. Le Code fonctionne bien.
Voici le code:
de sortie:
Si vous n'êtes pas de passage de chemin d'accès complet à
os.listdir()
(Ligne 6), puis comment il donnera la liste des sous-répertoires? Il me manque quelque chose? Dossier d'Archive est insdie l'un des lecteur (C: / D: / Home). À l'intérieur du dossier de l'archive il y a plus de dossiers par exemple toto1, foo2 et foo3. Des dossiers d'archives contient également un script python. À l'intérieur de toto1, foo2 et foo3 il y a des fichiers texte. Droit ?Oui vous avez raison dans ce que vous dites. Mais un problème se produira /archive/(script python)/... ne sera pas trouvé, comme le code est en supposant que le script python est un autre dossier. Il sera exécuté une erreur donc j'ai besoin de trouver une façon de l'obtenir pour être ignoré. Aussi, même sans le chemin d'accès complet, je l'ai essayé avant et le répertoire en cours est où le script est en cours d'exécution, la partie de chemin d'accès peuvent accéder aux dossiers que je veux.
Enlever '/' à partir de la ligne n ° 3 dans votre édité code et essayer. donc, la ligne 3 sera
corpus_path = sorted([os.path.join("archive", directories) for directories in os.listdir(startpath)])
- Il encore se complique pas me donner ce que je veux. Les erreurs toujours pop up
OriginalL'auteur Gaurav Vichare