Comment copier des fichiers vers le chemin d'accès réseau ou un lecteur à l'aide de Python
Le mien est semblable à cette question.
La seule différence est que mon lecteur réseau dispose d'une protection par mot de passe avec un nom d'utilisateur et mot de passe.
J'ai besoin de copier des fichiers vers un Samba
partager à l'aide de Python
et le vérifier.
Si j'manuellement la connexion dans le code fonctionne, mais sans ouvrir de session dans le shutil
commande ne fonctionne pas.
Vous devez vous connecter pour publier un commentaire.
Je vais essayer de cartographie de la part d'une lettre de lecteur non utilisée par l'appel de la
NET USE
l'aide de la commandeos.system
(en supposant que vous êtes sous Windows):Après avoir cartographié la part d'une lettre de lecteur, vous pouvez utiliser
shutil.copyfile
pour copier le fichier sur le disque. Enfin, vous devez démonter le partager:Bien sûr, cela ne fonctionne que sur Windows, et vous devrez veiller à ce que la lettre de lecteur P est disponible. Vous pouvez vérifier le code de retour de la
NET USE
commande pour voir si le montage a réussi; sinon, vous pouvez essayer une autre lettre de lecteur jusqu'à ce que vous réussissiez.Depuis les deux
NET USE
commandes viennent de la paire et le second doit toujours être exécuté que lorsque le premier a été exécuté (même si une exception a été soulevée quelque part entre les deux), vous pouvez envelopper ces deux appels dans un contexte manager si vous utilisez Python 2.5 ou version ultérieure:Si vous avez la pywin32 de la bibliothèque (par exemple, vient une partie de la ActiveState Python distribution), alors vous pouvez le faire en quelques lignes, sans le mappage d'un lecteur:
Il est un exemple plus complet sur ActiveState Code