问题
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?
回答1:
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.
回答2:
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?
来源:https://stackoverflow.com/questions/5224541/python-copy-files-to-a-network-location-on-windows-without-mapping-a-drive