我尝试使用 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/