>>> a=os.listdir('.')
>>> a
['arabic??.exe', 'asd.exe', 'chinese??.exe', 'cyrilic??.exe', 'french\xe7\xe9\xfc.exe', 'german\xe4\xdf\xfc.exe', 'registred\xae\xa9.exe', 'sandbox.py', 'spanish\xc1\xcd\xd3.exe']
>>> for each in a:
... os.system(os.getcwd()+'\\'+each)
...
The system cannot find the path specified.
J'essaie d'ouvrir certains fichiers avec des caractères étranges, mais le code ci-dessus ne fonctionne que pour les langues latines. Que puis-je faire pour obtenir l'encodage correct pour tous les fichiers et les ouvrir correctement? ou s'il y a une solution de contournement pour cela?Python: Comment obtenir le bon codage à partir d'un nom de fichier
Notez que la logique ci-dessus fonctionne bien sur les systèmes Linux.
Noms de fichiers: cyrilicЧБ; chinois french; frenchçéü; arabe شص; spanishÁÍÓ.exe, registred® © .exe, germanäßü.exe
il me donne cette erreur quand je passe comme unicode: retraçage (le plus récent appel dernier): Fichier « », ligne 2, en UnicodeEncodeError: « ascii 'codec ne peut pas encoder les caractères dans la position 41-42: ordinal pas dans la gamme (128) Si je le laisse comme octet au moins, il passe les arguments à l'os.system –
xRow
Avez-vous spécifié l'encodage pour votre fichier de script Python ? Veuillez vérifier la réponse mise à jour. – schaazzz
oui, j'ai essayé avec la ligne de codage, a également essayé d'encoder les noms avec .encode (sys.getfilesystemencoding() mais il ne fait aucune différence visible et je suis un peu coincé ici, merci pour l'aide de toute façon – xRow