在Python中将彩色输出写入CSV文件

时间:2016-12-20 19:32:21

标签: python-2.7 export-to-csv

我有一个程序,可以使用Python中的CSV模块将内容写入CSV文件。我的要求是,如果满足给定条件,则以彩色显示文本。有没有人指出如何使用CSV模块实现这一目标?

感谢您的帮助。

谢谢! MSH。

1 个答案:

答案 0 :(得分:5)

您应该使用excel文件,因为csv文件只是纯文本文件,不能在其中保留任何颜色格式。基本上,CSV文件似乎只有在格式化时才能在Excel中打开。

在任何情况下,我的建议是您尝试使用xlsxwriter包。您可以使用简单pip install XlsxWriter安装它。

我为您创建了一个示例脚本,以帮助您入门。您会注意到我有一行创建格式: 粗体 font-size 红色。该格式仅在单元格值(cell_data)等于"xyz"时使用。

from collections import OrderedDict
import xlsxwriter


data = {"1":["xyz",""],"2":["abc","def"],"3":["zzz",""]}

# Use an OrderedDict to maintain the order of the columns
data = OrderedDict((k,data.get(k)) for k in sorted(data.keys()))

# Open an Excel workbook
workbook = xlsxwriter.Workbook('dict_to_excel.xlsx')

# Set up a format
book_format = workbook.add_format(properties={'bold': True, 'font_color': 'red'})

# Create a sheet
worksheet = workbook.add_worksheet('dict_data')

# Write the headers
for col_num, header in enumerate(data.keys()):
    worksheet.write(0,col_num, int(header))

# Save the data from the OrderedDict into the excel sheet
for row_num,row_data in enumerate(zip(*data.values())):
    for col_num, cell_data in enumerate(row_data):
        if cell_data ==  "xyz":
            worksheet.write(row_num+1, col_num, cell_data, book_format)
        else:
            worksheet.write(row_num+1, col_num, cell_data)

# Close the workbook
workbook.close()

你应该得到:

enter image description here

我希望这会有所帮助。