2016-08-11 2 views
0

J'essaye de monter smb en utilisant le script ci-dessous mais en faisant face à un problème "TypeError" quelqu'un peut m'aider à résoudre ce problème. la commande réelle que je veux exécuter est mount -t cifs //111.11.111.111/SMBShare/mnt -o nom d'utilisateur = admin, mot de passe = admin, vers = 3.0Python, TypeError: tous les arguments ne sont pas convertis lors de la mise en forme des chaînes, commande de montage SMB

code python:

#/usr/bin/env python

def setup_env(self, get_xyz_share):  
    share = get_xyz_share.name 
    dx_ip = co.data_sols[0].address 
    co.clients[0].execute(['mount' ,'-t' ,'cifs' ,'//%s','/','%s' ,'/mnt', '-o' ,'username=admin,password=admin,vers=3.0' %(dx_ip, share)]) 

la sortie du script ressemble: ---

co.clients[0].execute(['mount' ,'-t' ,'cifs' ,'//%s','/','%s' ,'/mnt', '-o' ,'username=admin,password=admin,vers=3.0' %(dx_ip, share)]) 
    TypeError: not all arguments converted during string formatting 
    dx_ip  = '111.11.111.111' 
    get_xyz_share = <cx.models.Share.Shareobject at 0x4d53248 | name SMBShare>) 
self  = TestMySMB 
share  = 'SMBShare' 

Répondre

3

Vous faites la conversion sur le dernier élément de la liste:

'username=admin,password=admin,vers=3.0' %(dx_ip, share) 

Qui n'a aucun% s du tout.

vous voulez sans doute faire quelque chose comme:

co.clients[0].execute(['mount' ,'-t' ,'cifs' ,'//%s/%s' % (dx_ip, share) ,'/mnt', '-o' ,'username=admin,password=admin,vers=3.0']) 
+0

Merci Il a travaillé – user3507063

+0

vous êtes les bienvenus. et si cela a résolu votre problème, assurez-vous d'accepter la réponse correcte – creativeChips