Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

python copy files to a network location on Windows without mapping a drive

I am running python in a non interactive session on windows and therefore I cannot map a network drive.

Most of what I have researched on here and through google everyone suggests mapping a network drive and copying the files that way.

On linux I would facilitate this with an smbmount but unfortunately the software I am working with is tied to windows.

Are there any options for interacting with files via a UNC path?

like image 956
pablo Avatar asked Mar 07 '11 19:03

pablo


People also ask

How do I copy files from one server to another in python?

Practical Data Science using Python The easiest way to copy files from one server to another over ssh is to use the scp command. For calling scp you'd need the subprocess module.

How do you access a network folder in Python?

open(r'\\HOST\share\path\to\file') and open('\\\\HOST\\share\\path\\to\\file') worked with backward slash.

How would you copy a file from a network location in a Windows environment?

Click the Start button and then click Computer, click to open the location of the desired file, hold down the Shift key and right-click the file. Copy As Path: Click this option to paste the full file path into a document. Properties: Click this option to immediately view the full file path (location).


2 Answers

Personally, I've never had difficulties getting Python to simply recognize \\\\<server>\\path\\to\\directory\\. The annoying part is that for every "\" in the win. path, there needs to be 2 in python.

like image 125
cwallenpoole Avatar answered Sep 23 '22 07:09

cwallenpoole


First get access to the network share with "NET USE" - without Drive letter, like:

winCMD = 'NET USE ' + networkPath + ' /User:' + user + ' ' + password
subprocess.Popen(winCMD, stdout=subprocess.PIPE, shell=True)

As in here (but without specifying Drive letter): What is the best way to map windows drives using Python?

Then copy the file/directory with shutil.copy, like:

import shutil
shutil.copy2(networkPath + 'sourceDir/sourceFile', 'destDir/destFile')

As in here: How do I copy a file in python?

like image 23
Noam Manos Avatar answered Sep 25 '22 07:09

Noam Manos