Jump to content

[Python] Listar todas as drives do windows e seus atributos


Recommended Posts

O fnds2000 picou-me no mirc, e aqui esta o programa que lista todas as drives do windows e seus atributos

# -*- coding: cp1252 -*-
import win32api

########################################################
##    Descobre e lista o espaco disponivel em todos   ##
##    os disco do sistema windows only....            ##
##          By Newbeen                                ##
########################################################


def free():
   discos=win32api.GetLogicalDriveStrings()[:-1].split('\x00')

   for i in discos:
       try:
           espaco=win32api.GetDiskFreeSpace(i)
           print "Disco:\n%s tem %i sector(es) por cluster, %i bytes por sector,\n %i bytes espaco livre,\
e %i bytes de espaço total" %(i, espaco[0], espaco[1], espaco[2], espaco[3])
       except:
           print "\n\nDisco:\n%s é uma unidade de media amovivel vazia\n ou nao tem permissoes para aceder a drive" %i

   raw_input("\n\nPrima qualquer tecla para sair")

free()

RHCE - 120-062-534

Link to comment
Share on other sites

Andas-lhe a dar na API de Windows pá 🙂

o fnds2000 e que me perguntou isto no mirc eu como nao tive tempo para responder postei aqui, em relação a api do windows tou a escrever um programa onde uso e abuso da necessidade de recorrer a ela,alem disso aqui no forum tiro boas ideias de utilização depois de ver o keylogger em python aqui no forum acho que vou escrever um serviço de windows em python com ele la incluido (serviços de windows em python é uma da minhas novas skills looooooooool)

E ... não é premissões 😛 É permissões 😛

Nunca te escapou um dedo.....  ?

Ps: a verdade é que dou erro a pontapé, nao dou tantos nos post's graças ao corrector do firefox... (mas esse foi mesmo ter escapado o dedo 😛 )

RHCE - 120-062-534

Link to comment
Share on other sites

o fnds2000 e que me perguntou isto no mirc eu como nao tive tempo para responder postei aqui, em relação a api do windows tou a escrever um programa onde uso e abuso da necessidade de recorrer a ela,alem disso aqui no forum tiro boas ideias de utilização depois de ver o keylogger em python aqui no forum acho que vou escrever um serviço de windows em python com ele la incluido (serviços de windows em python é uma da minhas novas skills looooooooool)

Aproveita, junta o que fores aprendendo, e faz um tut. Bem viste a minha complicação em fazer um simples script para ver a memória RAM. A documentação que há da API é pouca e complicada, e dava jeito uma em português 😛

Ah, e bem vindo à secção e ao fórum 😛 (ainda não te tinha dito 😛 )

Link to comment
Share on other sites

O site da activestate tem-me sido extremamente útil muita informação e extremamente bem explicada  😁

Ressucitando...

Só gostaria de complementar:

# -*- coding: cp1252 -*-
# Modificado por Kratos em 13/05/2006 - Brasil

import win32api
import sys
import os

############ ::: Kratos ::: ##############

def f_bytes(bytes):
    if bytes < 1024:
        return '%d B' % ( bytes )
    elif bytes < ( 1024 * 1024 ):
        return '%.1f KB' % ( bytes / 1024.0 )
    elif bytes < ( 1024 * 1024 * 1024 ):
        return '%.1f MB' % ( bytes / 1024.0 / 1024.0 )
    else:
        return '%.1f GB' % ( bytes / 1024.0 / 1024.0 / 1024.0 )

def def_free():
    discos = win32api.GetLogicalDriveStrings()[:-1].split('\x00')
    for i in discos:
        try:
            nome = win32api.GetVolumeInformation(i)[0]
            espaco = win32api.GetDiskFreeSpace(i)
            
            print "\nCaminho da Unidade: [%s]" %(i[:2])
            print "Nome: %s" %(nome)
            
            setCluster = int(espaco[0])
            print "Setor(es) de Cluster: %s" %(setCluster)
            
            bytePorSetor = int(espaco[1])
            print "Espaço por Setor: %s" %(f_bytes(bytePorSetor))
            
            spaceFree = int(espaco[2])
            print "Espaço Livre: %s" %(f_bytes(spaceFree))
            
            spaceAll = int(espaco[3])
            print "Espaço Total: %s\n\n" %(f_byte(spaceAll))
            
        except:
            pass
            
    raw_input("\n\rTecle Enter para sair...")

if __name__ == '__main__':
    print "Sistema Operacional: %s-[%s]" %(sys.platform, os.name)
    print "Unidades Logicas...\n"
    def_free()

Só mostra os discos acessiveis.

😉

t+ 😁

"Vejo sempre além, pois me apóio em ombro de Gigantes"

Link to comment
Share on other sites

    print "Sistema Operacional: %s-[%s]" %(sys.platform, os.name)

Isto não faz lá grande coisa, isto só funciona em Windows 😁

Não peças ajuda por PM! A tua dúvida vai ter menos atenção do que se for postada na secção correcta do fórum!

Link to comment
Share on other sites

    print "Sistema Operacional: %s-[%s]" %(sys.platform, os.name)

Isto não faz lá grande coisa, isto só funciona em Windows 😁

Mas é exatamente para tal, ou seja, para o Windows!

Poe isso o uso da API: win32api

"Vejo sempre além, pois me apóio em ombro de Gigantes"

Link to comment
Share on other sites

Sim, se isso só funciona Windows, escusas de dizer ao utilizador: "Estás em windows" 😉

Haaaaaahh... entendi  😁

Verdade, não é tão util assim ... ?

👍

"Vejo sempre além, pois me apóio em ombro de Gigantes"

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.