python - 从 csv 文件格式化表格
问题描述
我正在尝试仅使用 CSV 模块从 CSV 文件中的数据制作表格。谁能告诉我应该怎么做才能显示“|” 在每一行的末尾(就在行中的最后一个元素之后)?这是我到目前为止所拥有的:
def display_playlist( filename ):
if filename.endswith('.csv')==False: #check if it ends with CSV extension
filename = filename + ('.csv') #adding .csv if given without .csv extension
max_element_length=0
#aligning columns to the longest elements
for row in get_datalist_from_csv( filename ):
for element in row:
if len(element)>max_element_length:
max_element_length=len(element)
# print(max_element_length)
#return max_element_length
print('-----------------------------------------------------------------------------')
for row in get_datalist_from_csv( filename ):
for element in row:
print('| ', end='')
if (len(element)<=4 and element.isdigit==True):
print(pad_to_length(element,4), end=' |') #trying to get '|' at the end[enter image description here][1]
else:
print(pad_to_length(element, max_element_length), end=' ')
print('\n')
print('-----------------------------------------------------------------------------')
## Read data from a csv format file
def get_datalist_from_csv( filename ):
## Create a 'file object' f, for accessing the file:
with open( filename ) as f:
reader = csv.reader(f) # create a 'csv reader' from the file object
datalist = list( reader ) # create a list from the reader
return datalist # we have a list of lists
## For aligning table columns
## It adds spaces to the end of a string to make it up to length n.
def pad_to_length( string, n):
return string + " "* (n-len(string)) ## s*n gives empty string for n<1
我现在得到的图像是:
| 跟踪 | 艺术家 | 专辑 | 时间
| 电脑爱| 牛皮纸 | 电脑世界 | 7:15
| 偏执的安卓 | 无线电台 | 好电脑 | 6:27
| 电脑时代 | 尼尔杨 | 反式 | 5:24
| 数字 | 欢乐事业部 | 仍然 | 2:50
| 银机 | 鹰风 | 路鹰 | 4:39
| 启动模拟器 | 啊哈 | 山脚 | 5:11
| 互联网连接 | 米娅 | 玛雅 | 2:56
| 深蓝 | 街机火灾 | 郊区 | 4:29
| 我会派生!| 马修心灵 | 优管 | 3:17
| 罗巴切夫斯基 | 汤姆·莱勒 | 优管 | 3:04
解决方案
推荐阅读
- reactjs - 如何在 componentDidMount 中用 jest 测试 2 个异步调用?
- python - 从python列表中获取具有检查键值计数的前N个项目
- java - 如何检查 Gradle 任务中的活动弹簧配置文件
- laravel - Laravel Eloquent 如何选择使用条件“where”作为数据透视表
- amazon-ec2 - AWS Cloud9:环境停止响应
- laravel - 使用模型功能
- arrays - 将日期字符串转换为数组中的日期格式化程序
- matlab - 大型矩阵的列移位优化(Circshift等)
- typescript - .d.ts 文件不包含在嵌套文件导出类型中
- sql - 多对一 onDelete SetNull 原则