【问题标题】:Read Remote File with Access Permissions读取具有访问权限的远程文件
【发布时间】:2012-02-08 22:14:00
【问题描述】:

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

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

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

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

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

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

谢谢

【问题讨论】:

  • Linux服务器上的文件是如何共享的? NFS?中小企业?
  • 我相信它是 NFS。如果需要,我也可以ssh 进入服务器
  • 对不起。我现在确定它正在运行 Samba

标签: python file-io networkcredentials


【解决方案1】:

您说这是 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

【讨论】:

  • 这就是我现在正在使用的。谢谢你。你能否解释一下,我应该如何使用"sharname"?具体来说,您能否为这种情况写一些东西:servername="SERVER",我试图在服务器中访问的文件位于\\SERVER\dir1\dir2\dir3\file.ext"
【解决方案2】:

使用 win32 模块的模拟可能适合您。看到这个ActiveState Recipe

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

【讨论】:

    猜你喜欢
    • 2012-06-16
    • 2017-02-12
    • 1970-01-01
    • 1970-01-01
    • 2011-06-07
    • 1970-01-01
    • 1970-01-01
    • 2015-06-19
    • 1970-01-01
    相关资源
    最近更新 更多