python实验九

实验要求

 答案代码

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

扫描二维码关注公众号,回复: 15495623 查看本文章

猜你喜欢

转载自blog.csdn.net/A_D_H_E_R_E/article/details/121287600