我正在尝试读取网络服务器上的文件(来自Windows XP计算机),我通常会通过在运行对话框中询问\\ServerName\dirPath\
来访问该文件。
现在,我必须编写一个程序,从服务器上读取文件并在我的电脑上返回一些结果。
我遇到的问题是我的电脑上的登录名在服务器上没有登录帐号。结果,当我尝试时,我无法读取服务器上的文件:
f = open(r'\\server\path\to\file', 'r')
我知道我可以通过向服务器或我的PC添加用户帐户来解决这个问题,但是缺少这些解决方案,我有办法将登录凭据传递给服务器吗?
我在我的电脑上运行Windows XP,在服务器上运行一些Linux版
谢谢
答案 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。