967 votes

Comment faire pour vérifier la taille du fichier en python ?

Je vous écris un python script dans windows. Je veux faire quelque chose sur la taille du fichier. Par exemple, si la taille est supérieure à 0, j’envoie email à quelqu'un, sinon continuer à d’autres choses. Comment puis-je vérifier la taille du fichier ?

1317voto

danben Points 35312

944voto

Adam Rosenfield Points 176408

Utiliser `` et utilisez le `` membre de la structure qui en résulte :

144voto

mehaase Points 6824

Les autres réponses de travail réel des fichiers, mais si vous avez besoin de quelque chose qui fonctionne pour "fichier-comme des objets", essayez ceci:

# f is a file-like object. 
f.seek(0, os.SEEK_END)
size = f.tell()

Il fonctionne pour les fichiers réels et StringIO, dans mon test limitée. (Python 2.7.3.) Le "fichier-comme objet" de l'API n'est pas vraiment une interface rigoureuse, bien sûr, mais la documentation de l'API suggère que les fichiers objets devraient soutenir seek() et dire().

Modifier

Une autre différence entre cela et d'os.stat (), c'est que vous pouvez stat() sur un fichier, même si vous n'avez pas la permission de le lire. Évidemment le demander/dire l'approche ne fonctionnera pas, sauf si vous avez l'autorisation de lecture.

Edit 2

Au Jonathon de la suggestion, voici un paranoïaque version. (La version ci-dessus laisse le pointeur de fichier à la fin du fichier, donc si vous essayez de lire le fichier, vous obtenez zéro octets de retour!)

# f is a file-like object. 
old_file_position = f.tell()
f.seek(0, os.SEEK_END)
size = f.tell()
f.seek(old_file_position, os.SEEK_SET)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X