PYTHON(3)用账号密码登录windows共享文件夹
2019-08-26 本文已影响1人
弗兰克万岁
在工作的时候遇到需要通过账号密码访问window平台的samba文件的情况,因为服务器没有开放权限给everyone,头疼。
百度,stackoverflow基本找不到解决方法,或者字太多,哈哈哈。
最后只好深挖范例
按步骤来说,确认你的共享文件的共享路径,以及账号密码,还有权限是否正确打开。
比如下图
image.png
那么,在python中,server_name就是你的共享路径的aria2。
初始化
user_name = 'USERNAME'
passwd = 'PASSWD'
ip = '192.168.2.XXX'
service_name='aria2'
dir_name='test'
#test是aria2下面的一个子文件夹
sb=SMBClient(user_name,passwd,ip)#个人封装的一个类,原理一样
sb.connect()
print(sb.status)
print(sb.samba.listShares())
上传一个文件
f=open('E:\\Doc1.docx' ,'rb')
sb.samba.storeFile('aria2','test/tt.doc',f)
f.close()
打开文件
#如果有开启guest查看权限,就不用经过smb类了,太辛苦直接open吧
with open(remote_file_path, 'rb') as f:
temp = f.read()
如果发现共享权限已经开了修改,但是任然报错 unable to open file
并且系统是windows系统,可以查看一下本地权限是否也开了。
如果执行下来没有报错,那么就恭喜成功了。
删除操作
sb.samba.deleteFiles(service_name, ‘test/tt.doc')#delete share file
移动或者重命名
#dir_name是我的一个子文件夹,可以删掉
self.samba.rename
(self.service_name,
os.path.join(self.dir_name,self.fname),
os.path.join(self.dir_name+'/'+new_path,'1111111'+self.fname),
timeout=30)
查了半天官方手册总算搞定了。