使用访问权限读取远程文件

时间:2012-02-08 22:14:00

标签: python file-io networkcredentials

我正在尝试读取网络服务器上的文件(来自Windows XP计算机),我通常会通过在运行对话框中询问\\ServerName\dirPath\来访问该文件。

现在,我必须编写一个程序,从服务器上读取文件并在我的电脑上返回一些结果。

我遇到的问题是我的电脑上的登录名在服务器上没有登录帐号。结果,当我尝试时,我无法读取服务器上的文件:

f = open(r'\\server\path\to\file', 'r')

我知道我可以通过向服务器或我的PC添加用户帐户来解决这个问题,但是缺少这些解决方案,我有办法将登录凭据传递给服务器吗?

我在我的电脑上运行Windows XP,在服务器上运行一些Linux版

谢谢

2 个答案:

答案 0 :(得分:2)

使用win32模块进行模拟可能对您有用。见ActiveState Recipe

我之前手动使用过Technet Runas命令行工具。在紧要关头,您可以使用子进程调用将文件复制到本地临时文件。

答案 1 :(得分:2)

你说这是一个Samba分享 - 看看PySmbClient。这样,你可以这样做:

client = smbclient.SambaClient(server="servername", share="sharename",
    username="foo", password="bar", domain="baz")
f = smb.open('/path/to/file')
data = f.read()
f.close()

Alernatives可用,例如PySamba