Python3(Jupyter)中如何输出规整易读的CSV文件?
解决CSV表格输出显示混乱的问题
CSV本身是纯文本格式,无法保存字体、对齐、列宽这类格式设置,所以得从Pandas的显示配置或者导出为带格式的文件入手解决:
1. 在交互式环境(Jupyter/IPython)中优化显示
直接调整Pandas的全局显示参数,让输出更规整:
import pandas as pd # 读取CSV df = pd.read_csv(r"C:\yourpath\data.csv") # 设置显示所有列(避免列被折叠) pd.set_option('display.max_columns', None) # 设置列宽足够容纳内容 pd.set_option('display.max_colwidth', 100) # 调整输出宽度适配终端/笔记本 pd.set_option('display.width', 1000) # 这时再输出df就会更清晰 df
如果需要更定制化的样式,还可以用Pandas的Styler功能:
# 生成带样式的表格(仅在Jupyter中显示样式) styled_df = df.style.set_table_styles( [{'selector': 'th', 'props': [('text-align', 'center')]}, {'selector': 'td', 'props': [('text-align', 'left')]}] ).hide(axis='index') styled_df
2. 导出为带格式的文件替代CSV
如果需要保存带格式的表格,别用CSV,换成以下格式:
导出为Excel文件
Excel支持保存格式,用to_excel方法,还能自定义样式:
# 基础导出(直接保存为xlsx) df.to_excel(r"C:\yourpath\formatted_data.xlsx", index=False) # 进阶:用openpyxl设置样式 from openpyxl import load_workbook from openpyxl.styles import Alignment, Font # 先导出无格式文件 df.to_excel(r"C:\yourpath\styled_data.xlsx", index=False, engine='openpyxl') # 加载工作簿并设置样式 wb = load_workbook(r"C:\yourpath\styled_data.xlsx") ws = wb.active # 设置表头居中、加粗 for cell in ws[1]: cell.alignment = Alignment(horizontal='center') cell.font = Font(bold=True) # 设置所有单元格自动调整列宽 for col in ws.columns: max_length = 0 column = col[0].column_letter for cell in col: try: if len(str(cell.value)) > max_length: max_length = len(str(cell.value)) except: pass adjusted_width = max_length + 2 ws.column_dimensions[column].width = adjusted_width wb.save(r"C:\yourpath\styled_data.xlsx")
导出为HTML文件
适合网页展示或复制到Word:
# 导出带基础样式的HTML df.to_html(r"C:\yourpath\formatted_data.html", index=False, border=1, justify='center')
3. 在终端/命令行中优化输出
如果是在终端运行脚本,用to_string自定义输出格式:
# 输出规整的文本表格 print(df.to_string(index=False, col_space=15, justify='left'))
内容的提问来源于stack exchange,提问作者teabussin
相关产品推荐
相关产品推荐

