python将文件复制到Windows上的网络位置,无需映射驱动器

问题描述:

我在Windows的非交互式会话中运行python,因此我无法映射网络驱动器。python将文件复制到Windows上的网络位置,无需映射驱动器

我在这里和通过谷歌大家研究的大部分建议映射网络驱动器和复制文件的方式。

在Linux上,我会用smbmount来实现这一点,但不幸的是,我正在使用的软件与windows绑定。

是否有任何选项可以通过UNC路径与文件进行交互?

+1

您是否尝试过使用unc路径创建文件对象?即f = open('\\ server \ dir \ file.name'); f.write(字符串)? – Ramy 2011-03-07 20:00:59

+1

我在Windows上始终使用Python中的UNC路径。他们工作正常。 – kindall 2011-03-07 20:23:31

就我个人而言,我从来没有让Python简单识别\\\\<server>\\path\\to\\directory\\。令人讨厌的部分是对于胜利中的每个“\”。路径,Python中需要有2个。

+20

...除非你使用原始字符串,你应该。 :-) – kindall 2011-03-07 20:23:03

+0

或os.sep。更丑陋,但麻烦更少。 – Ramy 2011-03-07 20:31:44

+2

我如何使用凭证对该份额进行身份验证? – pablo 2011-03-09 14:25:50

首先获得访问网络共享与 “NET USE” - 无需驱动器号,如:

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

正如在这里(但不指定驱动器盘符): What is the best way to map windows drives using Python?

然后复制文件/与shutil.copy目录,如:

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

正如在这里: How do I copy a file in python?