python tcl smb_python操作samba
最近在部署完xxl-job后,陆续将一些日常性执行的python脚本迁移到上面去;其中部分脚本涉及到对samaba的操作,先后尝试了pysmb、fs.smbfs、pysmbclient
pysmb
安装:sudo pip2 install pysmb
使用
from smb.SMBConnection import *
class SMBClient(object):
'''
smb连接客户端
'''
user_name = ''
passwd = ''
ip = ''
prot = None
status = False
samba = None
def __init__(self, user_name, passwd, ip, port=139):
self.user_name = user_name
self.passwd = passwd
self.ip = ip
self.port = port
def connect(self):
try:
self.samba = SMBConnection(self.user_name, self.passwd, '', '', use_ntlm_v2=True)
self.samba.connect(self.ip, self.port)
self.status = self.samba.auth_result
except:
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_names
def 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.smbfs
smb = fs.smbfs.SMBFS(host='****', username='****', passwd='***')
smb.opendir('***')
for e in smb.listdir():
print e
smb.close()
优缺点:host属性中直接输入ip无效,报错fs.errors.CreateFailed: could not get IP/host pair from '*.*.*.193',包的作者目前也没有解决这个问题。
pysmbclient
安装:sudo pip2 install pysmbclient
使用:
import smbclient
smb = smbclient.SambaClient(server='*.*.*.103', username=u'***', password='***', share=u'数据共享/')
for e in smb.listdir(u'/'):
smb.download(os.path.join(u'/', e), os.path.join('~/smb', e))
smb.close()
优缺点:可以完成普通文件和压缩文件从samba下载到本地
python tcl smb_python操作samba相关推荐
- python tcl smb_Python——操作smb文件服务器(上传和下载)
最近在做上传和下载,然后文件比较大和多,就用到了文件服务器,文件服务器是实体机 ,不是在本地, 然后用python 通过pysmb模块就可以直接进行操作 mac选择前往.连接服务器去查看文件服务器里都 ...
- python与excel做数据可视化-Python的Excel操作及数据可视化
Excel表操作 python操作excel主要用到xlrd和xlwt这两个库,即xlrd是读excel,xlwt是写excel的库. 安装xlrd pip install xlrd 简单的表格读取 ...
- csh/python/tcl常用功能
csh/python/tcl常用功能小总结 Csh 逐行读取并处理文本 if语句及字符串的匹配 Python Python逐行读取文件内容的三种方法 使用while readline 使用for 使用 ...
- Python模块MySQLdb操作mysql出现2019错误:Can't initialize character set utf-8
我使用python的MySQLdb模块实现了一个mysql client, 在测试时,出现了如下错误 Python模块MySQLdb操作mysql出现2019错误:Can't initialize c ...
- Python 炫技操作:合并字典的七种方法
来源 | Python编程时光(ID: Cool-Python) Python 语言里有许多(而且是越来越多)的高级特性,是 Python 发烧友们非常喜欢的.在这些人的眼里,能够写出那些一般开发者看 ...
- Python OpenCV像素操作
点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 本文转自:opencv学堂 Python OpenCV像素操作 环 ...
- python列表字典操作_Python 列表(list)、字典(dict)、字符串(string)常用基本操作小结...
创建列表 sample_list = ['a',1,('a','b')] Python 列表操作 sample_list = ['a','b',0,1,3] 得到列表中的某一个值 value_star ...
- python 实现卷积操作
python实现卷积操作 调用tf.nn.conv2d()实现卷积 自己实现卷积函数 我们知道,tensorflow里面自带卷积函数,tf.nn.conv2d()就可以实现相关功能,本文主要是自己实现 ...
- python列表按照指定顺序排序-Python常见排序操作示例【字典、列表、指定元素等】...
本文实例讲述了Python常见排序操作.分享给大家供大家参考,具体如下: 字典排序 按value排序 d1 = {"name":"python","b ...
最新文章
- 高级图像去雾算法的快速实现。
- 每日一皮:为什么在生产环境操作要谨慎再谨慎?太形象了!
- 关于Django将数据映射到Html中的操作
- PMcaff 2015上半年干货精选,不容错过哦~
- python基础:try...except...的详细用法
- springboot+mybatis多数据源最简解决方案
- 第二阶段冲刺(第九天)
- 侣信即时通讯系统的技术解析
- java之socket的OOBInline和UrgentData和发送心跳包研究
- mysql active_GitHub - vipshop/drc: MySQL active-active replication solution.
- flask-sqlalchemy CURD
- 关于使用SharedObject来缓存游戏图片或者swf文件资源到客户端本地的研究
- 超级牛皮的oracle的分析函数over(Partition by...) 及开窗函数
- 斐讯 k3 设置 虚拟服务器,斐讯K3无线中继设置教程(无线扩展)
- 基于springboot+jsp的服装穿搭信息管理系统
- Java实验01 Java编程基础(猜数字游戏、随机点名器)
- JAVA面试题|JAVA锁相关面试题总结(一)
- 华师大 OJ 3055
- discuz安装配置
- Linux 下 vi/vim 文本编辑器超详细使用指南(转载)
热门文章
- log4net 小记
- 在窗体上画图,并响应手标事件的实例
- [导入]ASP.NET 配置节架构
- 【计算机网络复习 数据链路层】3.1 数据链路层功能概述
- 牛客网--蛇形矩阵(Java)
- php $handle,laravel $kernel-handle 报错的解决办法_PHP开发框架教程
- a76比a73强多少_arm的a73和a72同上10nm,谁强?
- python神经网络作用_Python · 神经网络(三*)· 网络
- 如何获取投票提交地址_简单实用 | 2019全国医院擂台赛投票攻略(县域版)
- Dom4j完整教程~字符串与XML的转换