实验要求

 答案代码
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)
记录一下这里面学到的知识点

max()

key是用来指定比较的数据,这里的key就是len函数就是将数组里最长的字符串取出来,最后取出来的是字符串,而不是字符串长度,所以这里外面还要嵌套一个len.

rstrip([chars])

清除字符串末尾的指定字符,默认为空格

ljust(len,[chars])

返回一个原字符串左对齐,并使用指定字符填充至指定长度的新字符串,默认的填充字符为空格。如果指定的长度小于原字符串的长度则返回原字符串。

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

技术
下载桌面版
GitHub
Gitee
SourceForge
百度网盘(提取码:draw)
云服务器优惠
华为云优惠券
腾讯云优惠券
阿里云优惠券
Vultr优惠券
站点信息
问题反馈
邮箱:[email protected]
吐槽一下
QQ群:766591547
关注微信