2017-04-14 6 views
0

J'ai un partage samba sur mon NAS, qui est accessible en tant qu'invité dans R/W. A partir d'un script python sur mon framboisier, je voudrais envoyer un fichier.Envoyer un fichier sur un partage samba à partir d'un script python

J'ai fait le script suivant:

from shutil import copyfile 
copyfile('/home/pi/Test/README.md', r'\\192.168.0.30\Public\test') 

Je n'ai pas d'erreur, mais le fichier est envoyé pas à mon NAS.

une idée de ce que je fais mal?

+0

pouvez-vous voir le répertoire '\\ 192.168.0.30 \ Public'? pouvez-vous créer des fichiers manuellement? Je suis surpris que vous n'ayez pas d'erreurs. Courez-vous cela depuis la console? les exceptions sont lancées à partir de 'copyfile', il n'y a pas d'erreur silencieuse. –

+0

Oui, à partir de mon ordinateur Windows, je me connecte à '\\ 192.168.0.30 \ Public' en tant qu'invité et je suis capable d'écrire de nouveaux fichiers sans aucun problème manuellement. Je suis aussi surpris que vous êtes. Je cours ceci avec un simple 'python testCopy.py' – J4N

+0

@ Jean-FrançoisFabre Aussi pour mentionner, j'ai d'abord essayé de copier' '// 192.168.0.30/Public/test' et alors j'avais une erreur. – J4N

Répondre

1

j'ai fini en créant un partage réseau:

import subprocess 

remoteHost="192.168.0.30" 
remoteShare="Public" 
remoteSubFolder="test" 
remoteUser='picam' 
remotePassword='picam' 
localMountPoint = '/mnt/remoteServer' 
destinationFolder = localMountPoint+'/'+remoteSubFolder 

if not os.path.exists(localMountPoint): 
    os.makedirs(localMountPoint) 
command = "sudo mount -t cifs -o username="+remoteUser+",password="+remotePassword+" //"+remoteHost+"/"+remoteShare+" "+localMountPoint 
logMsg("Executing mounting command: "+command) 
subprocess.Popen(command, shell=True) 

Et maintenant, le travail de copie. Pas vraiment ce que je sautillais mais au moins ça marche.