15

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?

pablo
  • 473
  • 1
  • 6
  • 14
  • 1
    have you tried creating a file object with the unc path? i.e. f = open('\\server\dir\file.name'); f.write(strings)? – Ramy Mar 07 '11 at 20:00
  • 1
    I use UNC paths all the time in Python on Windows. They work fine. – kindall Mar 07 '11 at 20:23

2 Answers2

31

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.

cwallenpoole
  • 79,954
  • 26
  • 128
  • 166
11

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?

Community
  • 1
  • 1
Noam Manos
  • 15,216
  • 3
  • 86
  • 85