一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第28天,点击查看活动详情
本节继续上一节,对python常用的组件和方法进行讲解
pymongo
python3 -m pip3 install pymongo==4.2.10
安装好对应的pymongo版本,使用该命令即可对mongo数据库进行操作
client = MongoClient("172.16.17.25", 27017)
db = client.admin
db.authenticate("admin", "admin", mechanism='SCRAM-SHA-1')
test_assets = client.test_assets
linux_host = test_assets.linux_host
for i in linux_host.find():
print(i)
python mysql
pip uninstall mysql-connector
pip uninstall mysql-connector-python
pip install mysql-connector
执行python文件是报错,发现是文件命名有问题
直接就找这个mysql.py文件,而不是运行系统自带的mysql模块。
于是我把mysql.py名字改成mysql1.py,效果立竿见影!
python redis
$ pip install redis
Looking in indexes: mirrors.aliyun.com/pypi/simple
Requirement already satisfied: redis in /home/qingteng/.local/lib/python3.8/site-packages (2.10.6)
注意这里使用python3运行
python kafka
pip install confluent-kafka
安装插件后,按照代码方法即可连接和使用kafka
from kafka import KafkaConsumer
from datetime import datetime, timedelta
from confluent_kafka import Consumer
import time
# pip install confluent-kafka
topic_name = '__consumer_offsets'
# f_w = open("/data/test/data_dir/consumer_202201301455.txt", "w", encoding="utf-8")
consumer = KafkaConsumer(topic_name,
group_id='test',
# enable_auto_commit=True,
# auto_commit_interval_ms=2,
sasl_mechanism="PLAIN",
security_protocol='SASL_PLAINTEXT',
sasl_plain_username="test",
sasl_plain_password="test",
bootstrap_servers=['172.16.2.94:9092'])
for msg in consumer:
recv = "%s:%d:%d: key=%s value=%s" % (msg.topic, msg.partition, msg.offset, msg.key, msg.value)
print(recv)
python es
pip install elasticsearch
安装插件后,按照代码方法即可连接和使用elasticsearch
class OperateES():
def __init__(self, host, port, user, passwd):
self.host = host
self.port = port
self.user = user
self.passwd = passwd
self.es = self._authenticate()
def _authenticate(self):
# print(self.user, self.passwd, self.host, self.port)
es = Elasticsearch(['%s:%s@%s:%s' % (self.user, self.passwd, self.host, self.port)])
#es = Elasticsearch(['172.16.12.25'],http_auth=('elastic','test'),port=9200)
#print(es)
return es
def get_cluseter_settins(self):
settings = self.es.cluster.get_settings()
print(settings)
return settings
#查询并返回所有索引信息
def get_all_indexs_info(self):
#结果为字符串类型矩阵
indexs_info = self.es.cat.indices()
return indexs_info
if __name__ == "__main__":
host = "172.16.17.193"
port = "9200"
user = "elastic"
passwd = "test"
es = OperateES(host,port,user,passwd)
#es.get_thread_pool()
print(es.get_all_indexs_info())
python 数组合并
#合并后赋值给新数组a3
a3 = a1 + a2
python 数组包含
inventory = ["sword", "armor", "shield", "healing potion"]
if "healing potion" in inventory:
print "You will live to fight another day."
python 数字长度
print(len(list1))
python 判断json存在字段
value = data.get(key)
if (type(value) != type({}) and type(value) != type([])):
python 判断KeyError
TypeError: object of type 'NoneType' has no len()
python 判断 NoneType
if text is None:
print('test is ' + None)
else:
print('test is not ' + None)
python 拷贝对象
copy.copy
python i++
python中没有类似i++之类实现+1的运算符
总结
python目前是越来越多的程序员必备的技能,相对于shell脚本,编写更为容易,学习成本较低。因为大多数操作系统自带python,因此也比较容易推广。使用python我们可以很方便的连接大多数业务相关的常用组件,例如kafka、es等等,而且第三方依赖库目前也是比较齐全的,代码编写也没有java那么复杂,实现相同的功能,如果为了简单易用,还是推荐使用轻量级的python脚本。