资源描述:
《python核心编程第二版课后题答案第九章.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、9.11练习 9–1.文件过滤.显示一个文件的所有行,忽略以井号(#)开头的行.这个字符被用做Python,Perl,Tcl,等大多脚本文件的注释符号.附加题:处理不是第一个字符开头的注释.withopen("data.txt")asfobj:foreachlineinfobj:ifnoteachline.startswith("#"):printeachline附件题看不懂。。。。。9–2.文件访问.提示输入数字N和文件F,然后显示文件F的前N行.filename=raw_input("pleaseenterthefilename:")num=i
2、nt(raw_input("pleaseenterthelinenumber:"))foreachlineinopen(filename):ifnum:printeachlinenum-=1else:break程序输出:>>>pleaseenterthefilename:data.txtpleaseenterthelinenumber:5#第一行helloworld#第二行ilovethisworld#第三行9–3.文件信息.提示输入一个文件名,然后显示这个文本文件的总行数.filename=raw_input("pleaseenterthefil
3、ename:")printlen([lineforlineinopen(filename)])程序输出:>>>pleaseenterthefilename:data.txt89–4.文件访问.写一个逐页显示文本文件的程序.提示输入一个文件名,每次显示文本文件的25行,暂停并向用户提示"按任意键继续.",按键后继续执行.withopen("data.txt","a+")asfobj:foriinrange(100):fobj.write(str(i))fobj.write("")withopen("data.txt")asfobj:num=1fo
4、reachlineinfobj:ifnum%26!=0:printeachline,num+=1else:go=raw_input("continue(ctocontinue,othertoquit):")num+=1ifgo!="c":break9–6.文件比较.写一个比较两个文本文件的程序.如果不同,给出第一个不同处的行号和列号.fobj1=open("data1.txt")fobj2=open("data2.txt")lines1=fobj1.readlines()lines2=fobj2.readlines()foriinrange(min
5、(len(lines1),len(lines2))):iflines1[i]!=lines2[i]:printibreak9–7.解析文件.Win32用户:创建一个用来解析Windows.ini文件的程序.这道题我没看懂,如何解析???9–9.Python文档字符串.进入Python标准库所在的目录.检查每个.py文件看是否有__doc__字符串,如果有,对其格式进行适当的整理归类.你的程序执行完毕后,应该会生成一个漂亮的清单.里边列出哪些模块有文档字符串,以及文档字符串的内容.清单最后附上那些没有文档字符串模块的名字.附加题:提取标准库中各模块内
6、全部类(class)和函数的文档.这道题忽悠了我一个晚上。第一:根本就不存在__doc__的字符串,当我们运行模块.__doc__的时候,实际上是读取开头的字符串。所以我们要判断是开头是否存在“”“字符串”“”这样的格式。程序如下:importosimportsysnum=[]"""将所有路径文件名全部提出出来"""deffun(dirName):foriinos.listdir(dirName):ifos.path.isdir(dirName+"\"+i):fun(dirName+"\"+i)else:num.append(dirName+"
7、\"+i)fun(r"C:Python27Lib")hasDoc=FalsestrTemp=""fileobj1=open("hasdoc.txt","a+")fileobj2=open("nodoc.txt","a+")foriinnum:fobj=open(i)foreachlineinfobj:if(nothasDoc)andeachline.startswith('"""'):hasDoc=TrueelifhasDocandeachline.startswith('"""'):hasDoc=FalsestrTemp+=eachline
8、breakifhasDoc:strTemp+=eachlineelse:breakifstrTemp!="":fileob