Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 使用python 3.5的urllib上的SMb处理程序_Python 3.x_Urllib_Smb - Fatal编程技术网

Python 3.x 使用python 3.5的urllib上的SMb处理程序

Python 3.x 使用python 3.5的urllib上的SMb处理程序,python-3.x,urllib,smb,Python 3.x,Urllib,Smb,我正在尝试从我的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(pa

我正在尝试从我的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()
符号是当前存在的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
回溯(最近一次呼叫最后一次):
文件“/home/shock/anaconda3/envs/tensorflow/lib/python3.5/site packages/smb/SMBHandler.py”,第70行,在smb_open中
file_attrs,retrlen=conn.retrieveFile(服务,路径,fp)
retrieveFile中的文件“/home/shock/anaconda3/envs/tensorflow/lib/python3.5/site packages/smb/SMBConnection.py”,第267行
返回self.retrieveFileFromOffset(服务名称、路径、文件对象、0,-1、超时)
文件“/home/shock/anaconda3/envs/tensorflow/lib/python3.5/site packages/smb/SMBConnection.py”,第299行,位于retrieveFileFromOffset中
self.\u pollForNetBIOSPacket(超时)
文件“/home/shock/anaconda3/envs/tensorflow/lib/python3.5/site packages/smb/SMBConnection.py”,第583行,在_pollForNetBIOSPacket中
自反馈数据(数据)
feedData中的文件“/home/shock/anaconda3/envs/tensorflow/lib/python3.5/site packages/nmb/base.py”,第54行
self.\u processNMBSessionPacket(self.data\u nmb)
文件“/home/shock/anaconda3/envs/tensorflow/lib/python3.5/site packages/nmb/base.py”,第75行,在_processNMBSessionPacket中
self.onNMBSessionMessage(packet.flags、packet.data)
onNMBSessionMessage中的文件“/home/shock/anaconda3/envs/tensorflow/lib/python3.5/site packages/smb/base.py”,第137行
如果self.\u updateState(self.smb\u消息):
文件“/home/shock/anaconda3/envs/tensorflow/lib/python3.5/site-packages/smb/base.py”,第276行,位于更新状态和SMB2中
请求回调(消息,**req.kwargs)
connectCB中的文件“/home/shock/anaconda3/envs/tensorflow/lib/python3.5/site packages/smb/base.py”,第856行
errback(OperationFailure('在%s上检索%s失败:无法连接到共享设备“%”(路径、服务名称)、消息\历史记录))
文件“/home/shock/anaconda3/envs/tensorflow/lib/python3.5/site packages/smb/SMBConnection.py”,第293行,电子表格
提出失败
smb.smb_structs.OperationFailure:无法检索mt4上的AUDNZD30.hst_历史记录:无法连接到共享设备
=========================SMB消息0====================
SMB标头:
-----------
命令:0x03(SMB2\u COM\u TREE\u CONNECT)
状态:0x00000000
标志:0x00
PID:8917
中期:3
工业贸易署:0
数据:58字节
b'09000000480032005C0005C000530048004F0043004B002D00440052004900560045005C006D0074034005F0068006900730074006F0072007900'
SMB数据包(十六进制):
----------------------
b'FE534D4240000000000000000300000000000000000000000000000000000000000000000000000000000000000000000000000D5220000000000000750000640000000000000000000000000000000900000480032005C0005C0005C000530048004F0043004B002D004400520004900560045005C0074034005F006800690070074006F0072007900'
============================SMB消息1====================
SMB标头:
-----------
命令:0x03(SMB2\u COM\u TREE\u CONNECT)
状态:0xC00000D0
标志:0x01
PID:8917
中期:3
工业贸易署:0
数据:9字节
b'09000000000000005c'
SMB数据包(十六进制):
----------------------
b'FE534D4240000000D00000C003000100010000000000000300000000000000D522000000000000075000064000000000000000000000000000000000000000000000000000000000000000000000000000000000005C'
在处理上述异常期间,发生了另一个异常:
回溯(最近一次呼叫最后一次):
文件“/home/shock/Documents/EclipseWorkspace/HEDA/test.py”,第33行,在
fh=控制器打开(路径)
打开文件“/home/shock/anaconda3/envs/tensorflow/lib/python3.5/urllib/request.py”,第466行
响应=自身打开(请求,数据)
文件“/home/shock/anaconda3/envs/tensorflow/lib/python3.5/urllib/request.py”,第484行,打开
"开放",
文件“/home/shock/anaconda3/envs/tensorflow/lib/python3.5/urllib/request.py”,第444行,在调用链中
结果=func(*args)
文件“/home/shock/anaconda3/envs/tensorflow/lib/python3.5/site packages/smb/SMBHandler.py”,第81行,在smb_open中
引发urllib.error.URLEROR('smb错误:%s'%ex.),并使用\u回溯(sys.exc\u info()[2])
文件“/home/shock/anaconda3/envs/tensorflow/lib/python3.5/site packages/smb/SMBHandler.py”,第70行,在smb_open中
file_attrs,retrlen=conn.retrieveFile(服务,路径,fp)
retrieveFile中的文件“/home/shock/anaconda3/envs/tensorflow/lib/python3.5/site packages/smb/SMBConnection.py”,第267行
返回self.retrieveFileFromOffset(服务名称、路径、文件对象、0,-1、超时)
文件“/home/shock/anaconda3/envs/tensorflow/lib/python3.5/site packages/smb/SMBConnection.py”,第299行,位于retrieveFileFromOffset中
self.\u pollForNetBIOSPacket(超时)
文件“/home/shock/anaconda3/envs/tensorflow/lib/python3.5/site packages/smb/SMBConnection.py”,第583行,在_pollForNetBIOSPacket中
自反馈数据(数据)
feedData中的文件“/home/shock/anaconda3/envs/tensorflow/lib/python3.5/site packages/nmb/base.py”,第54行
self.\u processNMBSessionPacket(self.data\u nmb)
文件“/home/shock/anaconda3/envs/tensorflow/lib/python3.5/site packages/nmb/base.py”,第75行,在_processNMBSessionPacket中
self.onNMBSessionMessage(packet.flags、packet.data)
onNMBSessionMessage中的文件“/home/shock/anaconda3/envs/tensorflow/lib/python3.5/site packages/smb/base.py”,第137行
如果self.\u updateState(self.smb\u消息):
文件“/home/shock/anaconda3/envs/tensorflow/lib/python3.5/site-packages/smb/base.py”,第276行,位于更新状态和SMB2中
请求回调(消息,**req.kwargs)
connectCB中的文件“/home/shock/anaconda3/envs/tensorflow/lib/python3.5/site packages/smb/base.py”,第856行
errback(OperationFailure('在%s上检索%s失败:无法连接到共享设备“%”(路径、服务名称)、消息\历史记录))
文件“/home/shock/anaconda3/envs/tensorflow/lib/python3.5/site packages/smb/SMBConnection.py”,第293行,电子表格
提出失败
urllib.error.urleror: