目的
我想(有个性地)输出一个csv(txt)文件中的内容,于是写了一段代码
内容
csv文件中内容
操作,用户,名称,条件,例外
拒绝,Everyone,鲁大师,发布者,
拒绝,Everyone,驱动精灵,发布者,
拒绝,Everyone,2345,发布者,
拒绝,Everyone,快压,发布者,
拒绝,Everyone,爱奇艺,发布者,
拒绝,Everyone,360,发布者,是
拒绝,Everyone,剪映,发布者,
拒绝,Everyone,优酷,发布者,
拒绝,Everyone,暴风影音,发布者,
拒绝,Everyone,WPS,发布者,
拒绝,Everyone,腾讯,发布者,是
拒绝,Everyone,360Safe\*.exe,路径,
拒绝,Everyone,360AI.exe,路径,
允许,Everyone,(默认规则) 位于 Program Files 文件夹中的所有文件,路径,
允许,Everyone,(默认规则) 位于 Windows 文件夹中的所有文件,路径,
允许,Everyone,默认允许,路径,
允许,BUILTIN\Administrators,(默认规则) 所有文件,路径,
代码
非常简单
# -*- coding: utf-8 -*-
# Environment PyCharm
# File_name printOutput |User Pfolg
# 2024/11/06 23:50
import prettytablewith open(".\\ban.csv", "r") as file:content = file.readlines()con = []
for line in content:con.append(line.strip().split(","))
# way1-使用prettytable
table = prettytable.PrettyTable()
table.field_names = con[0]
for i in range(len(con)-1):table.add_row(con[i+1])
print(table)
# way2-使用 ANSI 转义序列来手动设置文本颜色
for item in con:key = "{0}\t{1}\t{2}\t{3}\t{4}".format(*item)if item[0] == "操作":print('\033[36m' + key + '\033[0m')elif item[0] == "拒绝":print('\033[31m' + key + '\033[0m')elif item[0] == "允许":print('\033[32m' + key + '\033[0m')else:pass
效果
way1
对称美观,但不能突出各部分
way2
能突出显示,但不对称
总结
虽然有两种方法,但是目前石粒不济,效果仍然不尽人意,后续我会探索兼有这两种方法优点的方法