繁体   English   中英

python我可以向os.listdir提供用户名和密码吗?

[英]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框上:

使用Python映射Windows驱动器的最佳方法是什么?

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM