vérifier os.chemin d'accès.isfile(nom de fichier) avec la casse dans python
J'ai besoin de vérifier si le fichier existe ou non sensible à la casse.
file = "C:\Temp\test.txt"
if os.path.isfile(file):
print "exist..."
else:
print "not found..."
TEST.TXT le fichier est présent sous C:\Temp dossier. mais le script affiche "le fichier existe" de sortie de fichier = "C:\Temp\test.txt", il devrait afficher "non trouvé".
Grâce.
Juste pour être clair, voulez-vous
Ce que vous voulez, c'est contre l'OS. En python
(parce que les systèmes de fichiers Windows ne sont pas sensibles à la casse)
Pour clarifier un peu, En Python, sur les systèmes Windows avec de la casse des systèmes de fichiers (ou d'autres systèmes),
file
pour correspondre à c:\Temp\TEST.TXT
, ou PAS match?Ce que vous voulez, c'est contre l'OS. En python
C:\Temp\test.txt
et C:\Temp\TEST.TXT
sont exactement sur le même, d'où le résultat que vous obtenez en isfile
est correct.(parce que les systèmes de fichiers Windows ne sont pas sensibles à la casse)
os.listdir()
est sensible à la casse, même si...Pour clarifier un peu, En Python, sur les systèmes Windows avec de la casse des systèmes de fichiers (ou d'autres systèmes),
C:\Temp\test.txt
et C:\Temp\TEST.TXT
sont exactement les mêmes. Ce n'est pas vrai en Python sous Linux/Unix, où les systèmes de fichiers sont sensibles à la casse. En d'autres termes, c'est une différence dans la mise en œuvre de la os.*
routines de la bibliothèque sur différentes plates-formes - pas spécifiquement une fonction Python.OriginalL'auteur user1553605 | 2013-06-24
Vous devez vous connecter pour publier un commentaire.
Liste de tous les noms dans le répertoire au lieu de cela, de sorte que vous pouvez faire sensible à la casse:
Démo:
return filename in os.listdir(directory)
1. il échoue (ainsi queany()
code) si il y a les deux TEST.TXT fichier et test.txt répertoire (Est-il possible de créer sur un volume ntfs par programmation?) 2. Il peut échouer dans casse, en cas de destruction de cas (certains schéma du réseau).En effet; la
any()
était un vestige de la première révision où j'avais répondu à l'inverse de la question (c'est à dire me trompe complètement). Pourquoi l'OP veut c'est un peu un mystère, bien sûr.Pour le répertoire correspondant plus exact-même-cas-changé-nom de fichier cas (
TEST.TXT
fichier,test.txt
répertoire) sur le NTFS, ce qui seraitos.path.isfile()
faire pour les trois casse entrées exacte (sensible à la casse matchs pour le fichier, pour le répertoire, et le 3ème étant une casse de match pour les deux, mais ne correspondant pas le cas)?je suppose – c'est un comportement indéfini.
Dans le cas qui est le mien d'être tout aussi bonne. 😛
OriginalL'auteur Martijn Pieters
os.chemin d'accès.isfile n'est pas sensible à la casse en python 2.7 pour windows
Non, trop de distractions, vous avez raison. Cependant, c'est pas une réponse; l'OP est de savoir comment faire un cas sensibles de test.
OriginalL'auteur throwaway2013