CSV文件:使用Python标准库中的csv模块,通过简单的文本解析来读取数据。
Excel文件:使用专门的库(如openpyxl、xlrd)来解析复杂的文件格式,或者使用pandas库来简化读取过程。
在进行文件读取后的格式调整时,可设置显示选项进行整理,在进行举例前,先介绍需要引入的tabulate库
tabulate库主要用于:
- 格式化输出:将复杂的数据结构(如列表、字典)转换为易于阅读的表格格式。
- 控制台展示:在命令行界面中以表格形式展示数据,适用于脚本和命令行工具。
- 文件保存:将表格数据保存为文本文件,支持多种表格格式(如 Markdown、HTML、LaTeX 等)。
- 数据对比:用于比较不同数据集,通过表格形式直观展示差异。
- 报告生成:在生成报告时,使用表格形式展示数据,使报告更加清晰和专业。
多种表格格式:支持多种表格格式,包括简单的文本表格、Markdown、HTML、LaTeX 等。
自定义样式:允许用户自定义表格的样式,包括表头、分隔符、对齐方式等。
灵活性:可以处理各种数据结构,包括嵌套列表和字典。
举例:(注:需要引入tabulate 库)
pd.set_option(‘display.max_columns’, None) # 显示所有列
pd.set_option(‘display.max_rows’, None) # 显示所有行
pd.set_option(‘display.width’, None) # 自动调整宽度
pd.set_option(‘display.max_colwidth’, 100) # 设置最大列宽
pd.set_option(‘display.precision’, 2) # 设置小数精度
pd.set_option(‘display.unicode.ambiguous_as_wide’, True) # 处理中文对齐
pd.set_option(‘display.unicode.east_asian_width’, True) # 处理中文对齐
完整代码如下:
解析文件为csv 文件,文件内容如下:
订单编号 总金额 买家实际支付金额 收货地址 订单创建时间 订单付款时间 退款金额
1 178.8 上海 2020/2/21 0:00 0.0
2 21 内蒙古自治区 2020/2/20 23:59 2020/2/21 0:00 0.0
3 37 安徽省 2020/2/20 23:59 0.0
4 157 湖南省 2020/2/20 23:58 2020/2/20 23:58 0.0
5 64.8 江苏省 2020/2/20 23:57 2020/2/20 23:57 64.8
6 65.8 江苏省 2020/2/21 23:57 2020/2/21 23:57 0
7 66.8 江苏省 2020/2/22 23:57 2020/2/22 23:57 0
8 67.8 江苏省 2020/2/23 23:57 0
9 68.8 江苏省 2020/2/24 23:57 2020/2/24 23:57 0
10 69.8 江苏省 2020/2/25 23:57 2020/2/25 23:57 0
11 70.8 江苏省 2020/2/26 23:57 2020/2/26 23:57 0
import pytest
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
import os
import warnings
from tabulate import tabulate # 添加tabulate库
warnings.filterwarnings('ignore')# 设置显示选项
pd.set_option('display.max_columns', None) # 显示所有列
pd.set_option('display.max_rows', None) # 显示所有行
pd.set_option('display.width', None) # 自动调整宽度
pd.set_option('display.max_colwidth', 100) # 设置最大列宽
pd.set_option('display.precision', 2) # 设置小数精度
pd.set_option('display.unicode.ambiguous_as_wide', True) # 处理中文对齐
pd.set_option('display.unicode.east_asian_width', True) # 处理中文对齐def display_aligned_dataframe(df):"""打印对齐的数据框"""# 创建一个样式对象styled_df = df.style.set_properties(**{'text-align': 'left','padding': '10px'})# 设置表格边框styled_df = styled_df.set_table_styles([{'selector': 'th','props': [('text-align', 'center'),('background-color', '#f0f0f0'),('padding', '10px')]},{'selector': 'td','props': [('text-align', 'left'),('padding', '10px')]}])return styled_df# 读取CSV文件后使用新的显示方式
file_path = 'E:\TestDome\Demo1.csv'
df = pd.read_csv(file_path, encoding="gbk")# 使用新的显示方式
print("\n数据预览:")
print(tabulate(df, headers='keys', tablefmt='grid', showindex=True)) # 使用tabulate对齐表头和数据# 或者使用样式化显示
display_aligned_dataframe(df)