本文源自白璽,创自白璽。转载请标示出处。本文参加日新计划【博客搬迁】

PythonPython 规范库

48 logging库

logging是Python规范库中用于记载日志的模块,它供给了灵敏的日志记载体系,而且能够操控日志输出的格式、日志的等级等参数。下面是一个运用logging库记载日志的示例代码:

import logging
# 装备日志记载的参数
logging.basicConfig(filename='example.log', level=logging.INFO, format='%(asctime)s %(levelname)s:%(message)s')
# 记载日志
logging.debug('This is a debug message.')
logging.info('This is an info message.')
logging.warning('This is a warning message.')
logging.error('This is an error message.')
logging.critical('This is a critical message.')

在上面的示例代码中,首先通过调用basicConfig方法装备了日志记载的参数,包括日志文件名、日志等级和日志格式。然后运用debuginfowarningerrorcritical等方法记载不同等级的日志信息。

运用上面的代码运转后,会在当时目录下生成一个名为example.log的文件,其间记载了各种等级的日志信息,格式为:

2023-03-30 09:43:17,269 INFO:This is an info message.
2023-03-30 09:43:17,269 WARNING:This is a warning message.
2023-03-30 09:43:17,269 ERROR:This is an error message.
2023-03-30 09:43:17,269 CRITICAL:This is a critical message.

在实践开发中,能够根据需要设置不同的日志等级,并将日志记载到不同的文件中,以便利排查问题。

49 csv库

csv库是Python规范库中用于处理csv格式文件的模块。它供给了一种便利的方法来读取和写入CSV文件。下面是运用csv库读取和写入CSV文件的示例代码:

读取CSV文件示例代码:

import csv
with open('data.csv', 'r') as file:
    reader = csv.reader(file)
    for row in reader:
        print(row)

上面的代码翻开名为“data.csv”的文件,并运用csv.reader()函数创立一个CSV读取器目标。然后,运用for循环迭代读取器目标,以行的方法读取CSV文件的内容,并将其打印出来。

写入CSV文件示例代码:

import csv
data = [['Name', 'Age', 'City'],
        ['John', '25', 'New York'],
        ['Jane', '30', 'London'],
        ['Bob', '40', 'Paris']]
with open('output.csv', 'w', newline='') as file:
    writer = csv.writer(file)
    for row in data:
        writer.writerow(row)

上面的代码创立了一个包括几行数据的列表,并运用csv.writer()函数创立一个CSV写入器目标。然后,运用for循环迭代数据列表,并运用writer.writerow()函数将每行数据写入CSV文件。最后,运用with语句封闭文件目标。

在读写CSV文件时,能够运用不同的分隔符、文本引用符、行结束符等选项。例如,能够运用tab分隔符而不是逗号分隔符,如下所示:

import csv
with open('data.tsv', 'r') as file:
    reader = csv.reader(file, delimiter='\t')
    for row in reader:
        print(row)

上面的代码运用tab字符作为分隔符,而不是逗号。能够运用相似的方法自定义CSV文件的其他选项。

50 sqlite3库

SQLite是一种轻量级的联系型数据库管理体系,能够通过Python内置的sqlite3库在Python中进行操作。下面是一个简单的示例代码,展示了怎么运用sqlite3库在Python中创立数据库、表和刺进数据:

import sqlite3
# 衔接到数据库(假如不存在,则创立它)
conn = sqlite3.connect('example.db')
# 创立一个游标目标
cur = conn.cursor()
# 创立一个名为students的表
cur.execute('''CREATE TABLE students
               (id INT PRIMARY KEY NOT NULL,
                name TEXT NOT NULL,
                age INT NOT NULL)''')
# 刺进一些数据
cur.execute("INSERT INTO students (id, name, age) VALUES (1, 'Alice', 20)")
cur.execute("INSERT INTO students (id, name, age) VALUES (2, 'Bob', 21)")
cur.execute("INSERT INTO students (id, name, age) VALUES (3, 'Charlie', 22)")
# 保存更改
conn.commit()
# 封闭衔接
conn.close()

上面的代码创立了一个名为example.db的数据库,并在其间创立了一个名为students的表,该表有三列:idnameage。然后,代码向该表中刺进了三条记载。最后,代码将更改保存到数据库中并封闭了数据库衔接。

假如我们想要从该表中查询数据,能够运用相似于下面的代码:

import sqlite3
# 衔接到数据库
conn = sqlite3.connect('example.db')
# 创立一个游标目标
cur = conn.cursor()
# 查询一切的学生记载
cur.execute("SELECT * FROM students")
# 获取一切结果
results = cur.fetchall()
# 输出结果
for row in results:
    print(row)
# 封闭衔接
conn.close()

这段代码将查询students表中的一切记载,并将结果打印到操控台上。在这种情况下,输出将是:

(1, 'Alice', 20)
(2, 'Bob', 21)
(3, 'Charlie', 22)