Python – Montando um share no windows (SAMBA)


Opa!

Como prometi (desta vez fui rápido), vou criar um post rapidão de como mapear uma unidade de rede autenticada com SAMBA no Windows, para que você possa gravar e ler arquivos =D

Primeiro eu criei a função abaixo:


#@TODO --> Pegar usuário, senha e host das confs do database =D
def mappDisk(drive, ip, sharedFolder, user, password):
 # print "Entrei aqui =D "
 import pywintypes
 import win32com.client

# Disconnect previous mapped drives
 networkPath = win32com.client.Dispatch('Wscript.Network')
 network_drives = networkPath.EnumNetworkDrives()
 for mapped_drive in [network_drives.Item(i)
 for i in range(0, network_drives.Count() -1 , 2)
 if network_drives.Item(i)]:
 networkPath.RemoveNetworkDrive(mapped_drive, True, True)

# Mount the drives
('z:', '\\\\192.168.1.100\\Some_Share', 'someuser', 'somepass')]
 drive_mapping = [
#(drive, '\\\\'+ip+'\\'+sharedFolder, user, password),
 ]
 print drive_mapping
 for drive_letter, network_path, user_name, user_pass in drive_mapping:
 try:
 networkPath.MapNetworkDrive(drive_letter, network_path, True, user_name, user_pass)
 return True
 except Exception, err:
 print err
 return False

Aí é só chamar a função passando os parâmetros, testar se você pode gravar o arquivo e ser feliz !!!


try:
 file= open(caminho.mapDrive + '\\' + caminho.pastaPedido + '\\' + fileName, 'a')
 except IOError:
 canWrite = mappDisk(caminho.mapDrive, caminho.ipServidor, caminho.sharedFolder, caminho.usuario, caminho.senha)

if canWrite:

 file= open(caminho.mapDrive + '\\' + caminho.pastaPedido + '\\' + fileName, 'a')

...

Como estou  usando o Django, criei um models para guardar os parâmetros. Assim fica mais fácil visualizar, editar e tals ^^

Segue no dpaste porque o último post ficou todo zicado –> http://dpaste.com/hold/1379145/

Obs.:  Usa a biblioteca pywin32 ….

Abraços!

Anúncios

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: