请问如何将表格对齐
\t仅能起到将光标移到下一个8*n+1(n为大于等于0的整数)的列位置,当列数据宽度大于8时,就起不到对齐数据内容的作用了。
#-*- encoding=GBK -*-
list1=[['车次','出发站-到达站','出发时间','到达时间','历时'],
['T40','长春-北京','00:12','12:20','12:08'],
['T298','长春-北京','00:06','10:50','10:44'],
['T158','长春-北京','12:48','21:06','08:18'],
['Z62','长春-北京','21:58','06:08','08:20']]
#统计得出每列的最大宽度
maxw=[]
for c in range(5):
maxw.append(0)
for r in range(5):
if r==0:
maxw[c]=len(list1[r][c].encode('gbk'))+1
else:
w=len(list1[r][c].encode('gbk'))+1
if w>maxw[c]:
maxw[c]=w
for r in range(5):
s=""
for c in range(5):
s=s+("%s%s" %(list1[r][c],' '*(maxw[c]-len(list1[r][c].encode('gbk')))))
print(s)
#车次 出发站-到达站 出发时间 到达时间 历时
#T40 长春-北京 00:12 12:20 12:08
#T298 长春-北京 00:06 10:50 10:44
#T158 长春-北京 12:48 21:06 08:18
#Z62 长春-北京 21:58 06:08 08:20
以上最后的注释显示仍对不齐,是因为CSDN弱智的排版模块。
看截图:
使用制表符是会出现这样的问题,一个制表符代表了固定宽度,如果前面的字符串长度不同,后面的制表符会自动调整位置,就会出现这种情况。
需要先预判每列中最长的字符串的长度是多少,然后根据这个长度再去决定该列中每个字符串应该占多宽的位置。
import matplotlib.pyplot as plt
import soundfile as sf
musicFileName = '8_Channel_ID.wav'
sig, sample_rate = sf.read(musicFileName)
print("采样率:%d" % sample_rate)
print("时长:", sig.shape[0]/sample_rate, '秒')
# 声音有两个通道
serviceData = sig.T[0]
clientData = sig.T[1]
plt.rcParams['figure.figsize'] = (20, 5) # 设置figure_size尺寸
plt.figure()
l=sig.shape[0]
x = [i/8000 for i in range(l)]
plt.plot(x, serviceData, c='b')
plt.show()
采取的声音信息:
声音的波形: