适 用 专 业
适用于所有专业。
实 验 目 的
(1)熟练掌握内置函数open()的用法。
(2)熟练运用内置函数len()、max()、enumerate()。
(3)熟练运用字符串的strip()、just()和其他方法。
(4)熟练运用列表推导式。
实 验 内 容
编写一个程序demo.py,要求运行该程序后,生成demo_new.py文件,其中内容与demo.py一样,只是在每一行的后面加上行号。要求行号以#开始,并且所有行的#垂直对齐。
代码
filename = 'demo.py'
with open(filename,'r') as fp: #以只读的方式打开该文件,with:自动关闭,文件中有汉字会导致编码出现问题
list1 = fp.readlines(); #从文件读取整行,可作列表使用,使用前提是open模式为'r'
mxlen = len(max(list1,key=len)); #长度为规则,根据元素的长度来决定排序规则,
list1 = [line.rstrip().ljust(mxlen)+ '#' +str(index)+'\n' for index, line in enumerate(list1)]; #在枚举对象中
with open(filename[:-3]+'_new.py','w') as fp: #创建文件的格式:open(‘path’+filename+‘文件格式’,‘w’)
fp.writelines(list1); #[:-3] 切片,截取filename文件名的[0~-3]
print(filename);
运行结果
D:\Software\Anaconda3\python.exe D:/Desktop/PyCharmWork/Demo/work-06-2022-04-15/__init__.py
demo.py
Process finished with exit code 0
demo.py
qq
qwqe
sssssss
sad
demo_new.py
qq #0
qwqe #1
sssssss #2
sad #3