问题:
要求运行该程序后,生成demo_new.py文件,其中内容与demo.py一样,但需要在每一行的后面注释上行号(#1),并且要求所有行的#垂直对齐
思路:
首先统计文档中最长的那一行的长度(maxlength),然后再每行的末尾填充至最长长度
最后在每行末尾添加‘#’号
代码:
filename = 'demo.py'
with open(filename, 'r', encoding='UTF-8') as fp:
lines = fp.readlines() #将demo.py每一行内容记入lines中
maxLength = len(max(lines, key=len)) #统计最长的行的长度,方便填充空格以致对齐
lines = [line.rstrip().ljust(maxLength)+'#'+str(index)+'\n' #rstrip() 删除 string 字符串末尾的指定字符(默认为空格)
for index, line in enumerate(lines)] # ljust() 方法返回一个原字符串左对齐,并使用空格填充至指定长度的新字符串
with open(filename[:-3]+'_new.py', 'w') as fp:
fp.writelines(lines)