暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Python tabulate模块实践

yangyidba 2023-03-28
2073

Python是一种非常流行的编程语言,拥有丰富的生态系统和强大的功能库。其中一个非常实用的功能库是tabulate模块,它可以帮助开发者将数据以表格的形式输出,非常方便。本文将介绍tabulate模块的使用方法,并提供几个实用的案例。

一 介绍

tabulate模块是一个轻量级的Python库,可以将数据以表格的形式进行排列和输出。它可以支持多种数据类型的输入,例如列表、字典、元组、集合等。tabulate模块还支持对表格样式的自定义,包括表格的对齐方式、边框样式、列名称等。

具体用法 tabulate模块的主要函数是tabulate(),它接受两个必需参数:数据和表格头部。下面是一个基本的示例:

from tabulate import tabulate

data = [
 ["Alice",25, "Female"],
 ["Bob",30, "Male"],
 ["Charlie",35, "Male"]
]

headers = ["Name""Age""Gender"]

print(tabulate(data, headers))

这将输出以下结果:

Name     Age Gender
-------- --- --------
Alice 25  Female
Bob 30  Male
Charlie 35  Male

可以看到,输出的表格是自动格式化的,不需要手动调整列宽或对齐方式。接下来介绍一些常用的参数:

headers:表格的首行,可以是列表或元组类型;

tablefmt:表格样式,支持多种格式,例如“plain”、“grid”、“pipe”、“latex”等;showindex:是否显示行号,默认为False;

numalign/stralign:数字和字符串的对齐方式;

floatfmt:浮点数的格式化方式。

除了基本参数外,tabulate模块还支持其他更高级的选项,例如格式化字符串、自定义列宽、排序等。具体请参阅官方文档。

二 案例

下面是几个实用的案例,展示了tabulate模块的应用场景:

2.1 显示文件信息

import os
from tabulate import tabulate

path = "./"
data = []

for filename in os.listdir(path):
 size = os.path.getsize(filename)
 time = os.path.getctime(filename)
 data.append([filename, size, time])

headers = ["Filename""Size""Created Time"]
print(tabulate(data, headers))

这将以表格的形式输出当前目录下所有文件的名称、大小和创建时间。

2.2 显示进程信息

import psutil
from tabulate import tabulate

data = []
for process in psutil.process_iter(['pid''name''cpu_percent''memory_info']):
 data.append([process.info['pid'], process.info['name'], process.info['cpu_percent'], process.info['memory_info'].rss])

headers = ["PID""Name""CPU Percent""Memory Usage"]
print(tabulate(data, headers))

这将以表格的形式输出当前系统中所有进程的PID、名称、CPU占用率和内存使用情况。

2.3 显示股票数据

import yfinance as yf
from tabulate import tabulate

msft = yf.Ticker("MSFT")
data = msft.history(period="1d")

headers = ["Date""Open""High""Low""Close""Volume"]
print(tabulate(data.reset_index()[headers], headers))

这将以表格的形式输出微软股票的当日历史数据。

三 总结

tabulate 模块是一个非常实用的Python库,可以帮助开发者轻松地将数据以表格的形式输出。它具有丰富的功能和易用的接口,能够满足各种应用场景。无论是数据分析、系统监控还是报表生成,tabulate 模块都是一个值得推荐的工具。

如果你看到这里,其实这篇文章是AI 自动生成的,我仅仅是做了润色和改版,文章内容写的还是符合我的需求的, 介绍模块的使用和提供具体的案例。

文章转载自yangyidba,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论