当前位置:编程学习 > python >>

可爱的python课后习题

1,使用getopt。getopt()优化当前的功能函数:
[html] 
#!/usr/bin/python 
# -*- coding: utf-8 -*- 
#coding=utf-8 
import os,sys 
import getopt 
print sys.argv 
CDROW='/home/zhouqian/test' 
def cdWalker(CDROW,cdfile): 
        result=[] 
        for root,dirs,files in os.walk(CDROW): 
                result.append("%s %s %s" %(root,dirs,files)) 
                print root 
        open(cdfile,'w').write('\n'.join(result)) 
 
def usage(): 
        print '''pycdc 使用方式: 
        python cdays-3-exercise-1.py -d cdc -k 中国火 
        #检索cdc中有没有中国火字样的目录, 
         ''' 
try: 
        opts,args=getopt.getopt(sys.argv[1:],'hd:e:k:') 
except getopt.GetoptError: 
        usage() 
        sys.exit() 
 
if len(opts)==0: 
        usage() 
        sys.exit() 
c_path='' 
name='' 
for opt,arg in opts: 
        if opt in('-h','--help'): 
                usage() 
                sys.exit() 
        elif opt=='-e': 
                if os.path.exists(arg):#判断目标路径是否存在 
                #       cdWalker(CDROW,arg) 
                        print "记录光盘的位置是 %s" %arg 
                else: 
                        print "不存在这样的目录" 
        elif opt=='-d': 
                        c_path=arg 
                        print c_path 
                        cdWalker(CDROW,c_path) 
        elif opt=='-k': 
                        if not c_path: 
                                usage() 
                                sys.exit() 
                        else: 
                                name=arg 
                                for root,dirs,files in os.walk(c_path): 
                                        if root=='%s' %name: 
                                                print '您要找的文件在%s' %dirs 
这是第一个题,大概做了2个小时吧,各种纠结啊,后面两个正在做。中间遇到的问题总结:
函式的利用,os.path.walk,python字符集,getopt模块的使用学习,os.path.exists()的利用,列表的对应关系等等
习题2 :关键词-----》序列号问题:
[html] 
#!/usr/bin/python 
#coding=utf-8 
import sys 
def collect(file): 
        result={} 
        for line in file.readlines(): 
                left,right=line.split() 
                if result.has_key(right): 
                        result[right].append(left) 
                else: 
                        result[right]=[left] 
        return result 
 
 
if __name__=="__main__": 
        print sys.argv 
        if len(sys.argv)==1: 
                print 'usage:\tpython value_keys.py test.txt' 
        else: 
                result=collect(open(sys.argv[1],'r')) 
                for (right,left) in result.items(): 
                        print "%d %s => %s" %(len(left),right,left) 

结果显示:
[html] 
root@zhou:/home/zhouqian/python# py value_keys.py test.txt  
ssss 
2 key3 => ['6', '33'] 
3 key2 => ['1', '2', '45'] 
3 key1 => ['4',

补充:Web开发 , Python ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,