0

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

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

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

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

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

我在我的 PC 上运行 Windows XP,在服务器上运行一些 Linux

谢谢

4

2 回答 2

2

使用 win32 模块进行模拟可能对您有用。请参阅此ActiveState 食谱

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

于 2012-02-08T22:31:51.333 回答
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()

有可用的替代方法,例如PySamba

于 2012-02-09T15:25:44.373 回答