Python - 如何使用用户名和密码打开Windows共享
我想通过Python脚本访问Windows共享文件夹(比如说 \backupserver\backups)。这个共享文件夹是需要用户名和密码才能进入的。请问我该怎么用用户名和密码打开这个共享文件夹,并且比如说列出里面的内容呢?
4 个回答
9
使用 pywin32
(Windows的Python扩展),可以访问 win32wnet
模块中的Windows网络方法。通过 win32wnet.WNetAddConnection2()
这个方法,你可以指定用户名和密码。
WNetAddConnection2(NetResource, Password, UserName, Flags)
这个方法可以创建一个到网络资源的连接。它还可以把本地设备重定向到这个网络资源。
连接建立后,就可以像平常一样使用目录和文件的方法来访问共享的资源。
12
“NET USE”的完整示例:
backup_storage_available = os.path.isdir(BACKUP_REPOSITORY_PATH)
if backup_storage_available:
logger.info("Backup storage already connected.")
else:
logger.info("Connecting to backup storage.")
mount_command = "net use /user:" + BACKUP_REPOSITORY_USER_NAME + " " + BACKUP_REPOSITORY_PATH + " " + BACKUP_REPOSITORY_USER_PASSWORD
os.system(mount_command)
backup_storage_available = os.path.isdir(BACKUP_REPOSITORY_PATH)
if backup_storage_available:
logger.fine("Connection success.")
else:
raise Exception("Failed to find storage directory.")
2
你为什么不使用
NET USE
这个命令来挂载相关的共享呢?
通过子进程模块调用 NET USE
是非常简单的。