使用 SMB 下载文件
Downloading files with SMB
我正在尝试使用 pysmbclient 模块通过我的网络共享下载 CSV,但出现错误(如下所示)。服务器是Win2003 R2(DFS),是IPC$共享。我能够通过 Windows Explorer 在我的主帐户上验证 OK 并下载文件。唯一的区别是我的主帐户使用“Trans 2 Request, QUERY_PATH_INFO”提取它。
是否有 "pure python" 通过 SMB 执行此操作的方法?
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 打开 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()
我正在尝试使用 pysmbclient 模块通过我的网络共享下载 CSV,但出现错误(如下所示)。服务器是Win2003 R2(DFS),是IPC$共享。我能够通过 Windows Explorer 在我的主帐户上验证 OK 并下载文件。唯一的区别是我的主帐户使用“Trans 2 Request, QUERY_PATH_INFO”提取它。
是否有 "pure python" 通过 SMB 执行此操作的方法?
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 打开 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()