python-2.7 - 使用 SMB 下载文件

标签 python-2.7 smb

我尝试使用 pysmbclient 模块通过网络共享下载 CSV,但出现错误(如下)。服务器是Win2003 R2(DFS),它是IPC$共享。我可以通过我的主帐户上的 Windows 资源管理器进行身份验证并下载文件。唯一的区别是我的主帐户使用“Trans 2 Request, QUERY_PATH_INFO”拉取它。

是否有通过 SMB 执行此操作的“纯 python”方法?

import smbclient

userID = 'user'
password = 'password'
server_name = 'usa03'
ip = '10.1.13.211'

try:
    smb = smbclient.SambaClient(server=server_name, ip=ip, share="share", username=userID, password=password, domain='biz')
    f = smb.open('\sas\results\summary.csv')
    data = f.read()
    f.close()
except:
        print "No go"
smb.close()

SMB 286 Open AndX 请求,路径:\sas\results\summary.csv

SMB 93 打开 AndX 响应,错误:STATUS_OBJECT_NAME_INVALID

最佳答案

最有可能的问题是 \r 被解释为 a control character .

将路径更改为:

f = smb.open('\\sas\\results\\summary.csv')

您还应该在可能的情况下避免 except: 并捕获特定的异常。

您还可以在此处使用 finally: 子句:

try:
    smb = smbclient.SambaClient(server=server_name, ip=ip, share="share", 
                                username=userID, password=password, domain='biz')
    with smb.open('\\sas\\results\\summary.csv') as f:
        data = f.read()
except SomeError: # not literally SomeError but an error you might encounter
    print "No go"
finally:
    smb.close()

关于python-2.7 - 使用 SMB 下载文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43594414/

相关文章:

python-2.7 - 如何在 Python 中使用 Suds 提取方法

python - 如何在从源 Python 编译的上安装 Pip

c++ - 为什么 FindFirstFile/FindNextFile 有时会看到网络文件夹中的文件,而 CopyFile 却看不到?

java - 如何使用JCIFS库高效验证大量文件的存在?

java - NtlmSsp 与 kerberos

python - 为什么循环遍历列表列表无法识别列表是副本

python3 + Pandas 样式 + 更改交替行颜色

ubuntu - 在 Ubuntu 上访问 Stata 中的 samba 文件夹

Vagrant 升级到 1.7.4 后无法挂载 SMB

python-2.7 - 无法删除 matplotlib.animation.FuncAnimation 对象