• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

newbeen

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

19 mensagens neste tópico

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()

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Andas-lhe a dar na API de Windows pá :)

E ... não é premissões :P É permissões :P

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros 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 :P É permissões :P

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 :P)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros 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 :P

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

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

é sou capaz de fazer isso, com tempo fazer uma coisa "decente" e depois ponho aqui ou mando para a revista se eles quiserem publicar coisa parecida  :biggrin:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

@ newbeen - é fnds3000 e não 2000 :P

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

A mim também não me disseste :P :P

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Sorry my bad 8-) de ser novo aqui ainda nao memorizei os nicks do pessoal como deve ser....  :-[

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Isso não vai correr, tens de especificar o encoding do file :P

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

A documentação que há da API é pouca e complicada

:eek:

Já olhaste bem para o MSDN??

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

A que eu encontrei disponivel por pesquisa no Google, que fosse acessível para eu compreender .. era péssima e pouca. A única página do MSDN a que fui dar, foi de erro :P

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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

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+ :cheesygrin:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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

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

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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

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

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

Poe isso o uso da API: win32api

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Eu sei, mas o que eu estou a dizer é que não há qualquer utilidade daquele print.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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

Haaaaaahh... entendi  :biggrin:

Verdade, não é tão util assim ... :-[

:thumbsup:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Mesmo fixe.

Adicionem isto ao wiki, se não eu memsmo o faço ;)

BTW, kratos, andaste desaparecido em combate, bem-vindo mais uma vez.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora