答案代码
filename = 'demo.py'
with open(filename,'r') as fp:
lines=fp.readlines()
maxlen = len(max(lines,key=len))
lines = [line.rstrip().ljust(maxlen)+'#'+str(index+1) + '\n' for index,line in enumerate(lines)]
print(lines)
with open(filename[:-3]+'_new.py','w') as fp:
fp.writelines(lines)
记录一下这里面学到的知识点
key是用来指定比较的数据,这里的key就是len函数就是将数组里最长的字符串取出来,最后取出来的是字符串,而不是字符串长度,所以这里外面还要嵌套一个len.
清除字符串末尾的指定字符,默认为空格
返回一个原字符串左对齐,并使用指定字符填充至指定长度的新字符串,默认的填充字符为空格。如果指定的长度小于原字符串的长度则返回原字符串。
ok,按这样写应该没问题了,可是当我运行代码时报错了,说是找不到demo.py,这是为什么呢?
后面发现好像是因为vscode运行python找相对路径会有点问题, 我就上网查了,有很多种办法,我这次用的其中一种办法就是
将这这段代码写在demo.py的开头就可以使用相对路径了
import os, sys
os.chdir(sys.path[0])
import os, sys
os.chdir(sys.path[0])
filename = 'demo.py'
with open(filename,'r') as fp:
lines=fp.readlines()
maxlen = len(max(lines,key=len))
lines = [line.rstrip().ljust(maxlen)+'#'+str(index+1) + '\n' for index,line in enumerate(lines)]
print(lines)
with open(filename[:-3]+'_new.py','w') as fp:
fp.writelines(lines)
结果
import os, sys #1
os.chdir(sys.path[0]) #2
filename = 'demo.py' #3
with open(filename,'r') as fp: #4
lines=fp.readlines() #5
maxlen = len(max(lines,key=len)) #6
#7
lines = [line.rstrip().ljust(maxlen)+'#'+str(index+1) + '\n' for index,line in enumerate(lines)] #8
print(lines) #9
with open(filename[:-3]+'_new.py','w') as fp: #10
fp.writelines(lines) #11