python将文件复制到Windows上的网络位置,无需映射驱动器
问题描述:
我在Windows的非交互式会话中运行python,因此我无法映射网络驱动器。python将文件复制到Windows上的网络位置,无需映射驱动器
我在这里和通过谷歌大家研究的大部分建议映射网络驱动器和复制文件的方式。
在Linux上,我会用smbmount来实现这一点,但不幸的是,我正在使用的软件与windows绑定。
是否有任何选项可以通过UNC路径与文件进行交互?
答
首先获得访问网络共享与 “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')
您是否尝试过使用unc路径创建文件对象?即f = open('\\ server \ dir \ file.name'); f.write(字符串)? – Ramy 2011-03-07 20:00:59
我在Windows上始终使用Python中的UNC路径。他们工作正常。 – kindall 2011-03-07 20:23:31