[英]python can I suppy username and password to os.listdir?
Python 3.4,Django 1.7,Windows Apache 2.4.12
我试图列出Windows共享驱动器上的所有文件(仅限某些用户),然后再将几个文件写入共享驱动器。
我正在使用os.listdir来做到这一点。 如果仅在计算机上运行Web应用程序,它将很好地运行,但是一旦将其部署到实际服务器上,它将停止工作。
问题是Windows共享驱动器上的权限。 用户必须先登录,然后才能输入用户名和密码。
我的问题是如何为os.listdir提供用户名和密码?
我尝试了os.listdir('// windows / share / drive / dir @ domanin / username:password'),但是系统将尝试查找文件,而不是传递用户名和密码。
有谁知道如何解决这个问题? 或者我需要映射驱动器(如何使用凭据映射驱动器?),列出文件,写入文件,然后断开映射驱动器的连接?
非常感谢。
您应该看一下net use
Windows命令。 它使您可以使用给定的凭据安装任何网络资源。
在访问网络资源之前,可以从Python net use
命令执行,如下所示:
net use \\computername\path\to\dir /user:username password
如果凭据正确,则可以访问网络资源,并且os.listdir()
将起作用。
如果给定资源已经使用不同的凭据挂载,则可能会出现一些问题。 在这种情况下,您应该先卸载它们( net use \\\\computername\\path\\to\\dir /delete
)
根据Python手册, os.listdir(path)
仅将path
名作为参数。 它可能在本地使用Django测试服务器对您有效,因为在该环境中,权限与使用生产Web服务器(如Apache或Nginx)不同。 尝试查看以下预先存在的相关SO问题和答案-它们可能会为您提供一些指导,尤其是在Win框上:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.