
python
python
南星叨叨
这个作者很懒,什么都没留下…
展开
-
python数据写入csv、csv转excel、用Pandas把数据写入excel简单总结
这个没太多要说的,数据合适就是a,b 这样的格式,就像写入文件这样就行了,要注意的地方就是编码这块要用utf-8-sig,不然会乱码。一开始很是纠结写入excel 这样的问题,没想到用pandas还是很方便的。就是说这个方法,不是一个公开的方法,将来会移除,后来看源码。一开始写的save()的方法,然后出警告了。所以,就用close方法就可以了。这块也是利用pandas的功能。原创 2022-11-19 20:53:28 · 2436 阅读 · 1 评论 -
python的压缩、异地备份脚本
用python实现文件压缩、异地备份原创 2022-07-25 11:35:37 · 257 阅读 · 0 评论 -
python运行docker容器
python运行docker容器原创 2022-06-16 00:17:00 · 2608 阅读 · 0 评论 -
paramiko和线程池Demo(快速批量操作服务器)
paramiko 线程池原创 2022-06-09 18:34:17 · 390 阅读 · 1 评论 -
python实现列表排序的各种方法
python列表排序原创 2022-06-09 12:00:29 · 8804 阅读 · 2 评论 -
python调用kubernetesAPI简单使用
K8s也提供API接口,提供这个接口的是管理节点的apiserver组件,apiserver服务负责提供HTTP API,以便用户、其他组件相互通信。客户端库: https://kubernetes.io/zh/docs/reference/using-api/client-libraries/安装pip install kubernetes -i https://pypi.douban.com/simplek8s认证方式HTTPS 证书认证:基于CA证书签名的数字证书认证HTTP Toke原创 2022-05-18 21:17:27 · 3184 阅读 · 1 评论 -
python学习面向对象之类变量、实例变量执行顺序
看了人家老哥的栗子,一下对结果就懵逼了,然后掰开揉碎,一顿整 ,看代码的执行顺序。这才看明白。这老哥挺牛逼的 !面向对象还得整。# 综合栗子class PoloBlogObjectTest: # 类变量 sum = 0 # 初始化方法 def __init__(self, name, age): # 实例变量 self.name = name self.age = age # 类变量 pr原创 2022-04-24 17:30:25 · 890 阅读 · 0 评论 -
python-面向对象编程-实例方法、静态方法、类方法
实例方法举例class Girl: def __init__(self, name, age): print("自动调用构造方法") self.name = name self.age = age def hello(self): print("一个实例方法,需要通过对象调用") print("my name is :", self.name, " and my age is :", self.age)原创 2022-04-24 15:04:51 · 1078 阅读 · 0 评论 -
python的第三方异步模块gevent简单demo
Gevent是一个基于微线程库Greenlet的并发框架优点 只需要monkey.patch_all(),就能自动修改阻塞为非阻塞缺点 不知道具体patch了哪些库修改了哪些模块、类、函数,出问题不好调试安装pip install geventdemoimport geventfrom bs4 import BeautifulSoupfrom gevent import monkeymonkey.patch_all()import requestsdef get_page_s原创 2022-04-21 17:06:58 · 744 阅读 · 0 评论 -
python多线程和多进程简单对比
import mathfrom concurrent.futures import ThreadPoolExecutor, ProcessPoolExecutorimport timePRIMES = [112272535095293] * 100def is_prime(n): if n < 2: return False if n == 2: return True if n % 2 == 0: return..原创 2022-04-21 13:31:15 · 546 阅读 · 0 评论 -
python装饰器代码的简单记录
装饰器通用模型def wrapper(fn): def inner(*args, **kwargs): ret = fn(*args, **kwargs) return ret return inner装饰器几个关键点"""1.函数可以当参数传递2.函数可以作为返回值进行返回3.函数名称可以当成变量一样进行赋值操作装饰器本质上是个闭包在不改变原有函数调用的情况下,给函数增加新的功能"""举个例子#!/usr/bin/python原创 2022-03-22 22:42:12 · 882 阅读 · 0 评论 -
python多个条件not in的优化写法
#!/usr/bin/pythonfrom config.config import filterswith open('test.txt', encoding='utf-8', errors='ignore') as file_object: while True: line = file_object.readline() if not line: break new_line = line.strip() if 'Pass原创 2022-03-14 17:20:39 · 1327 阅读 · 0 评论 -
python版kafka消费者多个topic
上一篇写的1个topic,今天发现,我会有多个主题怎么办呢 ,找来找去,终于找到这个代码了 。#!/usr/bin/python# encoding=utf-8from kafka import KafkaConsumerprint('start consumer')consumer = KafkaConsumer( bootstrap_servers="kafka-zookeeper-01:9092", # kafka集群地址 # value_serializer=lam原创 2022-03-08 18:23:45 · 5033 阅读 · 0 评论 -
python用kafka做消息队列
你得搭建 kafka zk 这样这个东西才能跑生产者代码#!/usr/bin/python# encoding=utf-8import datetimeimport jsonfrom common.OperationTimeHelper import OperationTimeHelperfrom common.LoggerHelper import LogggerHelperfrom kafka import KafkaProduceroperation = OperationT原创 2022-03-07 16:01:59 · 2198 阅读 · 0 评论 -
python实时日志分析
#!/usr/bin/python#encoding=utf-8#Filename: block_time.pyimport subprocesslogFile = "./blockchain.log"#主程序def monitorLog(logFile): print("monitor logFile: %s" % logFile) popen = subprocess.Popen(["tail", "-f", logFile], stdout=subprocess.PIPE原创 2022-03-02 22:05:09 · 1390 阅读 · 1 评论 -
zabbix端口自动发现的python script
#!/usr/bin/env pythonimport osimport jsonportlist = []new_port_list = []port_dict = {"data":None}cmd = '''netstat -tnlp|egrep -i "$1"|awk {'print $4'}|'''cmd += '''awk -F':' '{if ($NF~/^[0-9]*$/) print $NF}'|sort -n| uniq 2>/dev/null'''auto_loc原创 2022-02-11 11:24:59 · 870 阅读 · 0 评论 -
python简单封装dnspython
之前写过一个查询的文章,里面还是有问题的,所以更新一下封装了查询A,MX,TXT记录的方法,调用就更加方便了。对多个解析的值。用列表装起来,再用join连接,加上try…判断异常#!/usr/bin/pythonimport dns.resolverclass DnsHelper: def __init__(self, domain): self.domain = domain def get_a_by_domain(self): ip_l原创 2022-01-21 11:03:51 · 1141 阅读 · 0 评论 -
python操作mongodb(一)
安装pip install pymongo这里我就写个一次插入多个数据的例子client = pymongo.MongoClient('localhost', 27017) # 连接到mongodbadmin = client['admin'] # 选了超级管理员的账号admin.authenticate("账号", "密码") # 这里做了授权db = client['house_info'] # 这里选了库db['house_info'].insert_many(house_lists)原创 2022-01-10 16:34:11 · 348 阅读 · 0 评论 -
python用字典转成insert语句
这个是我经常用的一个玩法,之前都是苦逼呵呵的去解析字典,有了这个就方便多了1.组织数据生成字典举个例子,我就弄个邮箱和年龄2个字段,后边调用ret = { 'username':ceshi@fuck.com, 'age':''18}然后我们的表名叫 ceshi 就username,age,level_id这些字段2.对这个插入库的做个简单封装,需要传1个表名、和字典数据AdminInfo.py#!/usr/bin/python3from common.MysqlHelper i原创 2021-12-28 15:12:20 · 1345 阅读 · 0 评论 -
在 Python 中读取文本文件(readline、readlines、while读、生成器读)
一直以来我都是用readlines的方法,把文件都读进来处理,其实这个方法不大的文件,因为都都进来,这样就比较吃内存。我这边动辄搞1,200百万行的数据文件,这样搞不太好,也是经过一段时间学习,理解 总结如下大家一起讨论、分享如果文本文件不是那么大,您可以一次将文本文件的全部内容读入内存。with open('input.txt', encoding='utf-8') as f: lines = f.readlines()readline() 以字符串形式返回一行,用while循环,读文件原创 2021-12-23 11:29:39 · 6035 阅读 · 0 评论 -
python正则表达式(四)
#!/usr/bin/pythonimport re"""findall 查找所有. 返回list"""lst = re.findall("m", "mai le fo len, mai nimei!")print(lst) # ['m', 'm', 'm']lst = re.findall(r"\d+", "5点之前. 你要给我5000万")print(lst) # ['5', '5000']"""search 会进⾏匹配. 但是如果匹配到了第⼀个结果. 就会返回这个结果.原创 2021-10-23 18:14:00 · 166 阅读 · 0 评论 -
python的imaplib实现搜索邮件
import imaplibimap_user = 'shadiao@fuck.com'imap_object = imaplib.IMAP4('192.168.51.38', 143)imap_object.login(imap_user, 'fuck') # print(imap_object.list()). # 这里是列出来邮筒有啥文件夹# imap_object.select("inbox") # connect to inbox. # 这里是收件箱sent = imap_obje原创 2021-10-18 14:29:31 · 9959 阅读 · 12 评论 -
python转换Sep 10 00:00:14这样的时间为datetime类型的时间
这个是在做分析日志的时候发现的,日志里是这种月份,日,时分秒的格式经过查询发现,这种是可以转换为datetime类型的时间的,直接上代码就完了def convert_arrive_time(arrive_time): current_year = datetime.datetime.now().year ret = arrive_time.split(' ') ret = [i for i in ret if i != ''] ret.insert(2, str(curr原创 2021-09-10 13:38:38 · 422 阅读 · 0 评论 -
python 获取上个月第一天和最后一天
python 获取上个月第一天和最后一天import datetime first_day = datetime.date(datetime.date.today().year,datetime.date.today().month-1,1)last_day = datetime.date(datetime.date.today().year,datetime.date.today().month,1)-datetime.timedelta(1)返回一个date类型...原创 2021-09-09 10:46:07 · 2559 阅读 · 1 评论 -
python解决读取文件时中文乱码的解决方案
在使用python读取文件的时候,报了下面的错误:UnicodeDecodeError: ‘utf8’ codec can’t decode byte 0xb1 in position 0: invalid start byte.我当时的现象是cat可以正常读出中文,vim里面中文乱码的,python读文件加上了encoding='utf8’也不好使这种问题很是头疼临时解决更改文件的编码格式:vim/vi编辑器(进入esc命令模式),执行命令,set fileencoding=utf-8,然后回原创 2021-09-07 11:55:42 · 4660 阅读 · 0 评论 -
python调用jenkinsAPI发布项目
上一篇里写了 一个简单封装的jenkins API这里我就直接调用这个了,做一个简单的发布,直接干代码#!/usr/bin/pythonimport timeimport tqdmfrom common.JenkinsHelper import JenkinsHelper #这里就引用封装好的APIjenkins = JenkinsHelper('http://ip:port/jenkins', username='username', pa原创 2021-08-27 10:26:48 · 424 阅读 · 0 评论 -
python封装jenkins-API
pip install python-jenkins简单封装一下(底层还是调用jenkins的方法)import jenkinsclass JenkinsHelper: def __init__(self, url, username, password): self._url = url self._username = username self._password = password def get_server_ins原创 2021-08-26 15:02:37 · 404 阅读 · 0 评论 -
base64编码与python
python的base64模块python下的base64模块主要有8个方法(encode,decode,encodestring,decodestring,b64encode,b64decode,urlsafe_b64decode,urlsafe_b64encode)encode,decode:用来编码和 解码文件的,也可以对StringIO里的数据做编解码encodestring,decodestring:用来编码和解码字符串b64encode和b64decode:用来编码原创 2021-07-30 16:32:56 · 403 阅读 · 0 评论 -
python获取本机IP(优化版)
这种文章前辈们也是写过好多了,我只是站在了巨人的肩膀上,对前辈们写的文章进行了二次加工。# /usr/bin/pythonimport socketdef get_host_ip(): """ 查询本机ip地址 :return: ip """ s = None #这里先做个定义变量 try: s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) s.connect(原创 2021-05-19 11:14:31 · 284 阅读 · 0 评论 -
python检查MX地址和Telnet端口
这里有个问题要注意pip install dnspython这个要注意版本,我们的生产环境是python2.7,生产的我就不安装python3了,所以Python2.7安装要指定版本pip install dnspython==1.16.0官方网站https://pypi.org/project/dnspython/1.16.0/然后就是这个方法老版的可以用query,新版就是dns.resolver.resolve()resultMX = dns.resolver.query(‘fuc原创 2021-05-18 18:47:21 · 354 阅读 · 0 评论 -
python操作elasticsearch(插入数据)
索引 = 数据库,没有自动创建先连接,后操作,先安装包pip install elasticsearch#!/usr/bin/pythonimport datetimefrom elasticsearch import Elasticsearches = Elasticsearch([{"host": "x.x.x.x", "port": 9200}])body = { 'local_ip': 'x.x.x.x', 'queue_id': 'CC1681446071',原创 2021-05-17 23:40:42 · 1281 阅读 · 0 评论 -
python的时间装饰器
from time import timedef time_costing(func): def core(): start = time() ret = func() result = 'number: ' + str(ret) + ' time costing: ' + str(time() - start) print(result) return core@time_costingdef run():原创 2021-04-30 15:04:14 · 284 阅读 · 1 评论 -
python的迭代器和生成器:面试会问的问题,迭代器和生成器的不同
'''iterator Demo 迭代器Demolist tuple set 可迭代对象'''import copyclass BookCollection: def __init__(self): self.data = ['往事', '只能', '回味'] self.cur = 0 def __iter__(self): return self def __next__(self): if self.原创 2021-04-22 21:35:16 · 173 阅读 · 2 评论 -
python浅析geoip2和ip2region的2种方式查询IP地址归属地
#!/usr/bin/pythonfrom ip2Region import Ip2Regionip = '203.x.x.85'search = Ip2Region('ip2region.db')if search.isip(ip): data = search.btreeSearch(ip) print(data["region"].decode('utf-8'))#可以获取到字符串import geoip2.databaseip = '203.x.x.85're原创 2021-04-22 13:55:49 · 1355 阅读 · 0 评论 -
python的requests请求POST接口
import requestsurls = "http://172.25.15.57:8080/tomsso/user/updatePwd"data = {'mail':'xxoo@fuck.com','authMode':0,'newPassword':'fuck.123'}r =requests.post(urls,data)print(r)print(r.text)print(r.content)原创 2021-04-20 14:40:21 · 496 阅读 · 0 评论 -
python正则表达式分析Postfix队列中有问题的邮件(这是一个正则综合使用脚本)
python正则表达式分析Postfix队列中有问题的邮件先把队列中这些有问题的抓取出来/home/mail/postfix/usr/sbin/postqueue -p | grep 451|5xx|xxx > queue.txt然后就是分析这个文本,文本格式大致如下D30CD1446347 83972 Fri Apr 2 10:50:46 fuck@vip.fuck.com(host eu-smtp-inbound-2.mimecast.com[195.130.217.201]原创 2021-04-06 18:09:52 · 484 阅读 · 0 评论 -
python 获取系统磁盘信息—psutil安装及使用
psutil可以用来做系统监控,性能分析,进程管理。 支持的系统有Linux, Windows, OSX, FreeBSD and Sun Solaris,32和64位系统都支持,同时支持pyhton2.4到3.4。最高版本是5.8.0我们生产系统是debian7.4里面是Python3.4一开始直接pip3 install psutil直接报错,经验告诉我,需要降低版本,就跟当时安装pymysql一个道理然后搜索文章获得可用版本安装pip3 install psutil==2.1.3 #指定原创 2021-04-01 16:05:34 · 682 阅读 · 0 评论 -
python正则表达式(三)
#count为匹配到替换最大次数# code = 'PythonShellJava'# ret = re.sub('Shell','Golang',code)# print(ret)#将函数作为参数传递# code = 'PythonShellJava'## def convert(value):# matched = value.group()# return matched## ret = re.sub('Shell',convert,code)## prin原创 2021-03-22 16:53:06 · 192 阅读 · 0 评论 -
python正则表达式(二)
import re#边界匹配# qq = '351504529'## ret = re.findall('^\d{4,8}$',qq)# print(ret)#组# code = 'pythonpythonpythonpython'## ret = re.findall('(python){4}',code)# print(ret)#模式匹配参数code = 'pythonC#\njava'ret = re.findall('c#.{1}',code,re.I|re.S)原创 2021-03-22 13:58:50 · 100 阅读 · 0 评论 -
python正则表达式(一)
import re# a = 'c0c++Java 890c#qwe123&Python6__\nJavascript'# r = re.findall('\W',a)#0-9 \w 字母 包括下划线 \W 非单词字符 \s 空白字符 \S 非空白字符# print(r)# s = 'abc,acc,adc,aec,afc,ahc'# r = re.findall('a[^abcf]c',s)#^这个符号就取反了# print(r)#数量词 [a-z]{3}# a = 'p原创 2021-03-21 23:27:41 · 130 阅读 · 0 评论