begin process at 2012 05 24 23:58:56
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive Python

 > 

Archives

 > 

Au secours !!!

 > 

Fichiers en python


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Fichiers en python

lundi 13 juin 2005 à 11:28:44 | Fichiers en python

darfeuille

Salut,

  Etant novice en python, je bloque sur un truc :
  Dans un de mes programmes, a un moment, je dois recopier un fichier (en le modifiant) d'un répertoire vers un autre. Je sais que le nouveau fichier ne sera pas plus gros que celui d'origine.
   Mais étant donné que ce sont des fichiers de plusieurs GO, il me faut controler s'il y a assez d'espace libre.
   C'est pourquoi :

   Pouvez vous me dire comment je peux connaitre :
      1/ la taille d'un fichier
      2/ l'espace libre dans un répertoire

    De maniere portable (linux, win et mac)
    J'ai cherché dans os.path, qui contient des outils assez proches, mais je n'ai rien trouvé de tel.
   Merci


lundi 13 juin 2005 à 11:57:04 | Re : Fichiers en python

taz_iup

Réponse acceptée !
j'ai trouve ceci sur python.org

la methode stat du module os permet de retrouver la taille d'un fichier. et la méthode statvfs permet de retrouver la taille libre mais n'est disponible que sous UNIX. c'est déjà un début...
http://www.python.org/doc/2.4.1/lib/os-file-dir.html

lundi 13 juin 2005 à 12:31:35 | Re : Fichiers en python

taz_iup

pour windows tu peux utiliser win32com
mais c'est moyen comme solution...

import win32com.client
strComputer = "."
objWMIService = win32com.client.Dispatch("WbemScripting.SWbemLocator")
objSWbemServices = objWMIService.ConnectServer(strComputer,"root\cimv2")
colItems = objSWbemServices.ExecQuery("Select * from Win32_LogicalDisk")
for objItem in colItems:
print "Access: ", objItem.Access
print "Availability: ", objItem.Availability
print "Block Size: ", objItem.BlockSize
print "Caption: ", objItem.Caption
print "Compressed: ", objItem.Compressed
print "Config Manager Error Code: ", objItem.ConfigManagerErrorCode
print "Config Manager User Config: ", objItem.ConfigManagerUserConfig
print "Creation Class Name: ", objItem.CreationClassName
print "Description: ", objItem.Description
print "Device ID: ", objItem.DeviceID
print "Drive Type: ", objItem.DriveType
print "Error Cleared: ", objItem.ErrorCleared
print "Error Description: ", objItem.ErrorDescription
print "Error Methodology: ", objItem.ErrorMethodology
print "File System: ", objItem.FileSystem
print "Free Space: ", objItem.FreeSpace
print "Install Date: ", objItem.InstallDate
print "Last Error Code: ", objItem.LastErrorCode
print "Maximum Component Length: ", objItem.MaximumComponentLength
print "Media Type: ", objItem.MediaType
print "Name: ", objItem.Name
print "Number Of Blocks: ", objItem.NumberOfBlocks
print "PNP Device ID: ", objItem.PNPDeviceID
z = objItem.PowerManagementCapabilities
if z is None:
a = 1
else:
for x in z:
print "Power Management Capabilities: ", x
print "Power Management Supported: ", objItem.PowerManagementSupported
print "Provider Name: ", objItem.ProviderName
print "Purpose: ", objItem.Purpose
print "Quotas Disabled: ", objItem.QuotasDisabled
print "Quotas Incomplete: ", objItem.QuotasIncomplete
print "Quotas Rebuilding: ", objItem.QuotasRebuilding
print "Size: ", objItem.Size
print "Status: ", objItem.Status
print "Status Info: ", objItem.StatusInfo
print "Supports Disk Quotas: ", objItem.SupportsDiskQuotas
print "Supports File-Based Compression: ", objItem.SupportsFileBasedCompression
print "System Creation Class Name: ", objItem.SystemCreationClassName
print "System Name: ", objItem.SystemName
print "Volume Dirty: ", objItem.VolumeDirty
print "Volume Name: ", objItem.VolumeName
print "Volume Serial Number: ", objItem.VolumeSerialNumber

lundi 13 juin 2005 à 12:37:16 | Re : Fichiers en python

taz_iup

enfin apparement, il n'existe pas de solution "universelle".
Je pense que le meilleur moyen est de passer par une commande system:
os.popen2 couple avec un test sur la platform (os.platform)
voila tiens nous au courant

lundi 13 juin 2005 à 13:26:46 | Re : Fichiers en python

darfeuille

alors, voila ou j'en suis :
   
  ma question 1 etait : comment savoir la taille d'un fichier.
                                      Et effectivement stat marche impecc merci beaucoup :)

  pour savoir la place libre, je ne vois pas quelle membre de statvfs la renvoie. Elle renvoie plein de trucs, mais pas la taille libre (enfin, je n'ai pas l'impression). Ce n'est ni "free nodes" ni "free blocks" a priori
         Je vais continuer a chercher, et je te remercie beaucoup :)
   

lundi 13 juin 2005 à 13:53:48 | Re : Fichiers en python

taz_iup

ton disque est constitué de bloc reste a savoir la taille d'un block...
mais je crois que statvfs le donne aussi... de toute façon cette fonction n'est dispo que sous UNIX... :'(
donc elle ne résud pas ton problème pour Windows et Mac...

lundi 13 juin 2005 à 17:00:23 | Re : Fichiers en python

darfeuille

J'ai fini tout le reste du programme, je vais donc ne plus me concentrer que sur ca. J'ai cherché comment connaître la taille d'un bloc, mais je ne trouve pas.
ca doit pourtant bien exister, mais les seuls trucs que j'ai trouvé c'est que c'est "variable", ce qui ne m'aide pas beaucoup :)
Je tiens au courant de ce que je trouve, et en attendant, si quelqu'un a une solution, elle sera vraiment la bienvenue :)
 



ps : c'est marrant la programmation, des fois des trucs super compliques se font tout seuls, et des fois des trucs qui paraissent basiques comme ca, et ben on bloque dessus.

lundi 13 juin 2005 à 17:19:31 | Re : Fichiers en python

taz_iup

la fonction statvfs te donne ces infos

statvfs( path)
Perform a statvfs() system call on the given path. The return value is an object whose attributes describe the filesystem on the given path, and correspond to the members of the statvfs structure, namely: f_frsize, f_blocks, f_bfree, f_bavail, f_files, f_ffree, f_favail, f_flag, f_namemax. Availability: Unix.

For backward compatibility, the return value is also accessible as a tuple whose values correspond to the attributes, in the order given above. The standard module statvfs defines constants that are useful for extracting information from a statvfs structure when accessing it as a sequence; this remains useful when writing code that needs to work with versions of Python that don't support accessing the fields as attributes.

Changed in version 2.2: Added access to values as attributes of the returned object.

Statfvs Module

The statvfs module defines constants so interpreting the result if os.statvfs(), which returns a tuple, can be made without remembering ``magic numbers.'' Each of the constants defined in this module is the index of the entry in the tuple returned by os.statvfs() that contains the specified information.

F_BSIZE
Preferred file system block size.
F_FRSIZE
Fundamental file system block size.


mardi 14 juin 2005 à 08:25:02 | Re : Fichiers en python

darfeuille

Merci taz_iup.
     Etant donné qu'il me faut faire un programme portable, marchant dans tout os, mon responsable m'a dit de laisser tomber, que ca n'a pas d'importance, qu'on n'a pas le temps, et simplement, grace a la méthode stat, si le fichier dépasse 1.5GO, j'en informe l'utilisateur. Sinon, j'aime bien le python, c'est simple, sympa et pas très lent pour un langage interprété.

 Merci beaucoup et bon courage.


mardi 14 juin 2005 à 19:24:54 | Re : Fichiers en python

taz_iup

ok, mais je trouve ca bizarre quand même qu'il n'y ai pas de fonctions prévue pour ce genre de fonctionnalité pourtant très courante je pense.

si tu veux rester portable, je pense que le plus rapide est :
if( os.platform='XXX' ):
    os.popen(...)
elif( os.platform='YYY'):


1 2

Cette discussion est classée dans : fichier, répertoire, fichiers, espace, python


Répondre à ce message

Sujets en rapport avec ce message

Comment restaurer data.fs dans l' application zope? [ par rabikisa ] Bonjour, J'ai monté un serveur Zope sous Linux et je dois mettre en place une stratégie de sauvegarde. Zope sauvegarde toutes ses configurations, les Date de création des fichiers par ftp [ par judre ] Salut, J'ai une application qui transfère une tonne de fichier par ftp en utilisant ftplib.  J'aimerais savoir si y'a un truc pour télécharger les fi installation de python [ par elroulianito ] Comment on installe une nouvelle version sous linux?? sous suse 8.2 j'ai une vieille version de python (la 2.2) hors je veux Tkinter. - j'ai téléchar Ouverture d'un fichier windows (avec Tkinter) [ par Uims ] Bonjour, Je travaille sous python et Tkinter et j'aurai voulu savoir comment dire a python de demarrer (comme on clique sur un fichier) une applicati instruction de base sous Python de transfert de fichiers [ par dgpgl ] Comment transferer des fichiers par xxx.jpeg depuis un PC windows sur une  machine linux... a l'adresse xxx.ccc.com qui est ouverte via un port ssh! a uploader un fichier [ par amina22 ] bonjour,je suis entrain de programmer une application  qui se resume a une interface  qui me permet d'uploader des fichiers(audio,vidéo,image...) et d python [ par tattou_j ] Bonjour,Je suis entrain de travailler sur mon pfe, est ce que quelqu'un peut m'aider et m'envoyer des codes en python sur eclipse concernant l'envoi d ouvrir un fichier pdf avec python [ par roroloco ] Bonjour à tous,je souhaite pouvoir ouvrir un fichier pdf (c'est mon fichier d'aide) à partir d'un bouton marqué Aide dans un programme écrit en Python liste [ par Topnotch ] Bonjourje voudrais comparer deux listes:Plus précisement,  je voudrais comparer deux fichiers texte (fichier.txt) pour savoir si des lignes du fichier Ouvrir un fichier avec un autre programme [ par piche32 ] Bonjour à tous. Je suis débutant en python et je souhaiterais ouvrir un fichier avec google earth depuis un programme en python. J'aimerais savoir qu


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,733 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales