Python 从csv文件格式化表
我正在尝试仅使用CSV模块从CSV文件中的数据生成一个表。有人能告诉我应该怎么做才能在每一行的末尾显示“|”吗? 以下是我目前掌握的情况:Python 从csv文件格式化表,python,file,csv,Python,File,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 with
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
def display_播放列表(文件名):
如果filename.endswith('.csv')==False:#检查它是否以csv扩展名结尾
filename=filename+('.csv')#如果没有.csv扩展名,则添加.csv
最大元素长度=0
#将柱与最长的图元对齐
对于从csv获取数据列表中的行(文件名):
对于行中的元素:
如果长度(元件)>最大元件长度:
最大元素长度=长度(元素)
#打印(最大元素长度)
#返回最大元素长度
打印(“-----------------------------------------------------------------------------------------”)
对于从csv获取数据列表中的行(文件名):
对于行中的元素:
打印(“|”,结束=”)
如果(len(element)不能将print('\n')
更改为print('\n')
在print
循环的末尾附近吗?这会使“|”显示在字符串的最末端(e.x.| 3:17 |),我希望它在(| 3:17 |)之后立即显示。不过,我刚刚意识到我应该做什么