Man*_*zza 5 smb urllib python-3.x
我正在尝试从 Windows 共享文件夹中获取一些文件,在 Ubuntu 操作系统上运行 python3.5。由于 urllib2 在 python3 上不可用,我有这个简单的代码:
目录 = 'smb://user:passw@xxx.xxx.x.xx/shared_folder/' 对于符号中的符号:
path = dir+symbol+'.csv'
director = urllib.request.build_opener(SMBHandler)
fh = director.open(path)
# ..... do some stuff
fh.close()
Run Code Online (Sandbox Code Playgroud)
符号是当前存在的n个文件的列表。该代码适用于符号中的前 2 个元素,但由于某种原因,在 2 个循环之后我收到此错误
Traceback (most recent call last):
File "/home/shock/anaconda3/envs/tensorflow/lib/python3.5/site-packages/smb/SMBHandler.py", line 70, in smb_open
file_attrs, retrlen = conn.retrieveFile(service, path, fp)
File "/home/shock/anaconda3/envs/tensorflow/lib/python3.5/site-packages/smb/SMBConnection.py", line 267, in retrieveFile
return self.retrieveFileFromOffset(service_name, path, file_obj, 0, -1, timeout)
File "/home/shock/anaconda3/envs/tensorflow/lib/python3.5/site-packages/smb/SMBConnection.py", line 299, in retrieveFileFromOffset
self._pollForNetBIOSPacket(timeout)
File "/home/shock/anaconda3/envs/tensorflow/lib/python3.5/site-packages/smb/SMBConnection.py", line 583, in _pollForNetBIOSPacket
self.feedData(data)
File "/home/shock/anaconda3/envs/tensorflow/lib/python3.5/site-packages/nmb/base.py", line 54, in feedData
self._processNMBSessionPacket(self.data_nmb)
File "/home/shock/anaconda3/envs/tensorflow/lib/python3.5/site-packages/nmb/base.py", line 75, in _processNMBSessionPacket
self.onNMBSessionMessage(packet.flags, packet.data)
File "/home/shock/anaconda3/envs/tensorflow/lib/python3.5/site-packages/smb/base.py", line 137, in onNMBSessionMessage
if self._updateState(self.smb_message):
File "/home/shock/anaconda3/envs/tensorflow/lib/python3.5/site-packages/smb/base.py", line 276, in _updateState_SMB2
req.callback(message, **req.kwargs)
File "/home/shock/anaconda3/envs/tensorflow/lib/python3.5/site-packages/smb/base.py", line 856, in connectCB
errback(OperationFailure('Failed to retrieve %s on %s: Unable to connect to shared device' % ( path, service_name ), messages_history))
File "/home/shock/anaconda3/envs/tensorflow/lib/python3.5/site-packages/smb/SMBConnection.py", line 293, in eb
raise failure
smb.smb_structs.OperationFailure: Failed to retrieve AUDNZD30.hst on mt4_history: Unable to connect to shared device
==================== SMB Message 0 ====================
SMB Header:
-----------
Command: 0x03 (SMB2_COM_TREE_CONNECT)
Status: 0x00000000
Flags: 0x00
PID: 8917
MID: 3
TID: 0
Data: 58 bytes
b'09000000480032005c005c00530048004f0043004b002d00440052004900560045005c006d00740034005f0068006900730074006f0072007900'
SMB Data Packet (hex):
----------------------
b'fe534d4240000000000000000300000000000000000000000300000000000000d52200000000000075000064004400000000000000000000000000000000000009000000480032005c005c00530048004f0043004b002d00440052004900560045005c006d00740034005f0068006900730074006f0072007900'
==================== SMB Message 1 ====================
SMB Header:
-----------
Command: 0x03 (SMB2_COM_TREE_CONNECT)
Status: 0xC00000D0
Flags: 0x01
PID: 8917
MID: 3
TID: 0
Data: 9 bytes
b'09000000000000005c'
SMB Data Packet (hex):
----------------------
b'fe534d4240000000d00000c00300010001000000000000000300000000000000d52200000000000075000064004400000000000000000000000000000000000009000000000000005c'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/shock/Documents/EclipseWorkspace/HEDA/test.py", line 33, in <module>
fh = director.open(path)
File "/home/shock/anaconda3/envs/tensorflow/lib/python3.5/urllib/request.py", line 466, in open
response = self._open(req, data)
File "/home/shock/anaconda3/envs/tensorflow/lib/python3.5/urllib/request.py", line 484, in _open
'_open', req)
File "/home/shock/anaconda3/envs/tensorflow/lib/python3.5/urllib/request.py", line 444, in _call_chain
result = func(*args)
File "/home/shock/anaconda3/envs/tensorflow/lib/python3.5/site-packages/smb/SMBHandler.py", line 81, in smb_open
raise urllib.error.URLError('smb error: %s' % ex).with_traceback(sys.exc_info()[2])
File "/home/shock/anaconda3/envs/tensorflow/lib/python3.5/site-packages/smb/SMBHandler.py", line 70, in smb_open
file_attrs, retrlen = conn.retrieveFile(service, path, fp)
File "/home/shock/anaconda3/envs/tensorflow/lib/python3.5/site-packages/smb/SMBConnection.py", line 267, in retrieveFile
return self.retrieveFileFromOffset(service_name, path, file_obj, 0, -1, timeout)
File "/home/shock/anaconda3/envs/tensorflow/lib/python3.5/site-packages/smb/SMBConnection.py", line 299, in retrieveFileFromOffset
self._pollForNetBIOSPacket(timeout)
File "/home/shock/anaconda3/envs/tensorflow/lib/python3.5/site-packages/smb/SMBConnection.py", line 583, in _pollForNetBIOSPacket
self.feedData(data)
File "/home/shock/anaconda3/envs/tensorflow/lib/python3.5/site-packages/nmb/base.py", line 54, in feedData
self._processNMBSessionPacket(self.data_nmb)
File "/home/shock/anaconda3/envs/tensorflow/lib/python3.5/site-packages/nmb/base.py", line 75, in _processNMBSessionPacket
self.onNMBSessionMessage(packet.flags, packet.data)
File "/home/shock/anaconda3/envs/tensorflow/lib/python3.5/site-packages/smb/base.py", line 137, in onNMBSessionMessage
if self._updateState(self.smb_message):
File "/home/shock/anaconda3/envs/tensorflow/lib/python3.5/site-packages/smb/base.py", line 276, in _updateState_SMB2
req.callback(message, **req.kwargs)
File "/home/shock/anaconda3/envs/tensorflow/lib/python3.5/site-packages/smb/base.py", line 856, in connectCB
errback(OperationFailure('Failed to retrieve %s on %s: Unable to connect to shared device' % ( path, service_name ), messages_history))
File "/home/shock/anaconda3/envs/tensorflow/lib/python3.5/site-packages/smb/SMBConnection.py", line 293, in eb
raise failure
urllib.error.URLError: <urlopen error smb error: Failed to retrieve AUDNZD30.hst on mt4_history: Unable to connect to shared device
Run Code Online (Sandbox Code Playgroud)
==================== SMB 消息 0 ====================
命令:0x03 (SMB2_COM_TREE_CONNECT) 状态:0x00000000 标志:0x00 PID:8917 MID:3 TID:0 数据:58 字节 b'09000000480032005c005c00530048004f0043004b002d00440052004 900560045005c006d00740034005f0068006900730074006f0072007900'
b'fe534d4240000000000000000300000000000000000000000300000000000000d5220000000000007500006400440000000000000000000000000000000 0000009000000480032005c005c00530048004f0043004b002d00440052004900560045005c006d00740034005f0068006900730074006f0072007900'==== ================ SMB 消息 1 ====================
命令:0x03 (SMB2_COM_TREE_CONNECT) 状态:0xC00000D0 标志:0x01 PID:8917 MID:3 TID:0 数据:9 字节 b'09000000000000005c'
b'fe534d4240000000d00000c00300010001000000000000000300000000000000d5220000000000007500006400440000000000000000000000000000000 0000009000000000000005c'>
| 归档时间: |
|
| 查看次数: |
2136 次 |
| 最近记录: |