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

 ̄綄美尐妖づ 提交于 2019-12-18 10:55:39

问题


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

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!