当前位置: 首页 > news >正文

python常用的几个操作(读数据库、读ini、写日志)

1.python读数据库

(1)mogondb

引入包:from pymongo import MongoClient

创建对象:conn = MongoClient("192.168.2.77", 27017);

注:ip需要和mongod.cfg文件的对应

from pymongo import MongoClient
conn = MongoClient("127.0.0.1", 27017);
db = conn.test
dev = db.mydb;
for x in dev.find():
	print(x)

如果数据库test是变量,则应该这样写:db = conn[db_name]

(2)sqlserver

引入包:import pymssql

import pymssql
conn = pymssql.connect("127.0.0.1", "sa", "123456", "mydb");
cursor = conn.cursor()
creatTime = datetime.datetime.now()
time_str = creatTime.strftime('%Y-%m-%d %H:%M:%S')
sql = "INSERT INTO table XXXXXXX"
cursor.execute(sql)  # 执行sql语句	
conn.commit()
# 关闭连接
conn.close()

2.读ini文件

引入包:import configparser

读取int值用getint

import configparser
cf = configparser.ConfigParser()
cf.read("config.ini")
db_name = cf.get("mongodb", "db_name")
db_host = cf.get("mongodb", "db_ip")
db_port = cf.getint("mongodb", "db_port")
sqldb_name = cf.get("sqlserver", "db_name")
sqldb_ip = cf.get("sqlserver", "db_ip")
sqldb_port = cf.getint("sqlserver", "db_port")
sqldb_usr = cf.get("sqlserver", "db_usr")
sqldb_pssawd = cf.get("sqlserver", "db_pssawd")

config.ini文件

[mongodb]
db_name = test
db_ip = 127.0.0.1
db_port = 27017
[sqlserver]
db_name = mydb
db_ip = 127.0.0.1
db_port = 1433
db_usr = sa
db_pssawd = 123456

3.解析xml文件

引入包:

from xml.dom.minidom import parse
import xml.dom.minidom
from xml.dom.minidom import parse
import xml.dom.minidom
DOMTree = xml.dom.minidom.parse("test.xml")
collection = DOMTree.documentElement
#if collection.hasAttribute("shelf"):
nodes= collection.getElementsByTagName("node")
# 打印每台设备的详细信息
for d in nodes:
	# print ("*****node*****")
    if d.hasAttribute("id"):
	print ("ID: %s" % d.getAttribute("id"))
    name = d.getElementsByTagName('name')[0]
    print ("Name: %s" % name.childNodes[0].data)
    ip = d.getElementsByTagName('ip')[0]
    print ("IP: %s" % ip.childNodes[0].data)

4.写日志

引入包:

import logging

import logging
# 日志
LOG_FORMAT = "%(asctime)s - %(levelname)s - %(message)s"
logging.basicConfig(filename='my.log', level=logging.DEBUG, format=LOG_FORMAT)
'''
logging.debug("This is a debug log.")
logging.info("This is a info log.")
logging.warning("This is a warning log.")
logging.error("This is a error log.")
logging.critical("This is a critical log.")
'''

 

相关文章:

  • zookeeper实践及原理
  • 敏捷开发
  • mogodb数据库恢复报错:too many positional arguments
  • mongodb恢复数据库
  • windows10安装Ubuntu子系统
  • socket API(linux)
  • Linux socket编程实战(阻塞)
  • Linux socket编程实战(非阻塞)
  • coredump配置调试
  • Linux I/O复用技术---select
  • log4cpp的使用
  • Linux I/O复用技术---poll
  • Linux I/O复用技术---epoll
  • 网络通信基础知识(tcp/ip)
  • protobuf(C++)的使用(windows)
  • $translatePartialLoader加载失败及解决方式
  • ComponentOne 2017 V2版本正式发布
  • HTML中设置input等文本框为不可操作
  • JavaScript工作原理(五):深入了解WebSockets,HTTP/2和SSE,以及如何选择
  • markdown编辑器简评
  • RedisSerializer之JdkSerializationRedisSerializer分析
  • scrapy学习之路4(itemloder的使用)
  • Twitter赢在开放,三年创造奇迹
  • 初识 webpack
  • 读懂package.json -- 依赖管理
  • 对话 CTO〡听神策数据 CTO 曹犟描绘数据分析行业的无限可能
  • 基于游标的分页接口实现
  • 检测对象或数组
  • 解决jsp引用其他项目时出现的 cannot be resolved to a type错误
  • 漂亮刷新控件-iOS
  • 区块链将重新定义世界
  • 数组大概知多少
  • 长三角G60科创走廊智能驾驶产业联盟揭牌成立,近80家企业助力智能驾驶行业发展 ...
  • 好程序员大数据教程Hadoop全分布安装(非HA)
  • ​LeetCode解法汇总307. 区域和检索 - 数组可修改
  • ​用户画像从0到100的构建思路
  • #《AI中文版》V3 第 1 章 概述
  • #if和#ifdef区别
  • #includecmath
  • #NOIP 2014#day.2 T1 无限网络发射器选址
  • #经典论文 异质山坡的物理模型 2 有效导水率
  • (C语言)输入自定义个数的整数,打印出最大值和最小值
  • (Redis使用系列) Springboot 使用redis实现接口幂等性拦截 十一
  • (八)Spring源码解析:Spring MVC
  • (论文阅读11/100)Fast R-CNN
  • (每日持续更新)jdk api之FileReader基础、应用、实战
  • (转)Linux NTP配置详解 (Network Time Protocol)
  • .NET : 在VS2008中计算代码度量值
  • .NET CORE Aws S3 使用
  • .NET Core 和 .NET Framework 中的 MEF2
  • .NET4.0并行计算技术基础(1)
  • .net反编译工具
  • .NET框架
  • /etc/fstab和/etc/mtab的区别
  • @CacheInvalidate(name = “xxx“, key = “#results.![a+b]“,multi = true)是什么意思