天津网站推广优化,平台网站怎么推广,网站开发需求模板,帮人做网站收多少钱最近在部署完xxl-job后#xff0c;陆续将一些日常性执行的python脚本迁移到上面去#xff1b;其中部分脚本涉及到对samaba的操作#xff0c;先后尝试了pysmb、fs.smbfs、pysmbclientpysmb安装#xff1a;sudo pip2 install pysmb使用from smb.SMBConnection import *class …最近在部署完xxl-job后陆续将一些日常性执行的python脚本迁移到上面去其中部分脚本涉及到对samaba的操作先后尝试了pysmb、fs.smbfs、pysmbclientpysmb安装sudo pip2 install pysmb使用from smb.SMBConnection import *class SMBClient(object):smb连接客户端user_name passwd ip prot Nonestatus Falsesamba Nonedef __init__(self, user_name, passwd, ip, port139):self.user_name user_nameself.passwd passwdself.ip ipself.port portdef connect(self):try:self.samba SMBConnection(self.user_name, self.passwd, , , use_ntlm_v2True)self.samba.connect(self.ip, self.port)self.status self.samba.auth_resultexcept:self.samba.close()def disconnect(self):if self.status:self.samba.close()def all_file_names_in_dir(self, service_name, dir_name):列出文件夹内所有文件名:param service_name::param dir_name::return:f_names list()for e in self.samba.listPath(service_name, dir_name):if len(e.filename) 3:f_names.append(e.filename)return f_namesdef download(self, f_names, service_name, smb_dir, local_dir):下载文件:param f_names:文件名:param service_name:服务名(smb中的文件夹名):param smb_dir: smb文件夹:param local_dir: 本地文件夹:return:assert isinstance(f_names, list)for f_name in f_names:f open(os.path.join(local_dir, f_name), w)self.samba.retrieveFile(service_name, os.path.join(smb_dir, f_name), f)f.close()优缺点函数功能丰富文件下载功能只对普通文件如txt,dat,csv有效压缩文件无效fs.smbfs安装sudo pip2 install fs.smbfs使用import fs.smbfssmb fs.smbfs.SMBFS(host****, username****, passwd***)smb.opendir(***)for e in smb.listdir():print esmb.close()优缺点host属性中直接输入ip无效报错fs.errors.CreateFailed: could not get IP/host pair from *.*.*.193包的作者目前也没有解决这个问题。pysmbclient安装sudo pip2 install pysmbclient使用:import smbclientsmb smbclient.SambaClient(server*.*.*.103, usernameu***, password***, shareu数据共享/)for e in smb.listdir(u/):smb.download(os.path.join(u/, e), os.path.join(~/smb, e))smb.close()优缺点可以完成普通文件和压缩文件从samba下载到本地