python核心编程第九章练习
来源:互联网 发布:excel07建立数据透视表 编辑:程序博客网 时间:2024/06/10 04:55
9-2
#!/user/bin/env python# -*- coding:utf-8 -*-F = raw_input('Enter a filename ')N = int(raw_input('Enter lines to display '))filename = file(F, 'r')for eachLine in filename: if N != 0: print eachLine N -= 1filename.close()9-3
#!/user/bin/env python# -*- coding:utf-8 -*-filename = raw_input('Enter a filename ')n = 0filename = file(filename, 'r')for eachLine in filename: n = n + 1 filename.close()print n9-4
#!/user/bin/env python# -*- coding:utf-8 -*-filename = raw_input('Enter a filename ')n = 0filename = file(filename, 'r')for eachLine in filename:print eachLinen += 1if n % 25 == 0:raw_input("Press any key to continue ")filename.close()9-5
#!/user/bin/env python# -*- coding:utf-8 -*-import randomimport stringsrstring = string.lettersf1 = open('source.txt', 'w')for i in range(0, 10): name = '' length = random.randint(5, 10) for j in range(length): name += random.choice(srstring) score = random.randint(20, 100) score = str(score) outstring = name + ' ' + score + '\n' f1.write(outstring)f1.close()f1 = open('source.txt', 'r')sum1 = 0n = 0for each_line in f1: sum1 += int(each_line.split()[1]) n += 1print sum1, sum1 / nf1.seek(0)print sum(int(line.split()[1]) for line in f1)f1.close()9-6
#!/user/bin/env python# -*- coding:utf-8 -*-file1 = [line for line in file('9-1.py', 'r')]file2 = [line for line in file('9-2.py', 'r')]len1 = len(file1)len2 = len(file2)len_min = min(len1, len2)for row in range(len_min):if file1[row] != file2[row]:words1 = [word for word in file1[row]]words2 = [word for word in file2[row]]len1 = len(words1)len2 = len(words2)len_min = min(len1, len2)for colomn in range(len_min):if words1[colomn] != words2[colomn]:breakprint 'Diff in row[%s], colomn[%s]'%((row+1),(colomn+1))breakelse:print 'It is total same file.'
9-9
#!/user/bin/env pythonimport oshas=[]nhas=[]def doc_string(): os.chdir('C:\Python27\Lib') cwd=os.getcwd() #print cwd doclist=os.listdir(cwd) for d in doclist: path = os.path.join(cwd,d) #print path if os.path.isfile(path): h_doc=0 fp=open(path,'r') for line in fp: if '\'\'\'' in line: has.append(path) h_doc=1 break if h_doc==0: nhas.append(path) fp.close() print "doc has __doc__:",has print "\ndoc hasn't __doc__:",nhas doc_string()
9-12
#!/user/bin/env python# -*- coding:utf-8 -*-import time, getpass, hashlib, shelve# 用字典作为数据库db = shelve.open('userpw2.shelve')# 此函数用于注册def sigup(): # 写一个提示标语 prompt = '>New user sigup first: ' while True: # 输入账号 user = raw_input(prompt).lower() # 如果数据库中已经有了账号,提示重新输入 if user in db: prompt = '>The user is existing, try another.' continue # 回到循环处继续循环 elif not user.isalnum() or ' ' in user: print 'Invalid: username' continue else: break # 否则跳出循环 # 输入密码 psw = getpass.getpass() # 把账号和密码加入数据库中 timeNow = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time())) db[user] = hashlib.md5(psw).hexdigest(), timeNow print '>You has already sigup, return to login page.>>>'# 此函数用于登录def login(): # 写一个提示标语 prompt = '>New user sigup first(sigup) || Existing user: Enter your username\n>' while True: # 输入账号密码 user = raw_input(prompt).lower() if 'sigup' in user: sigup() psw = getpass.getpass() # 判断输入密码是否正确,正确则跳出循环,否则继续循环 if db.has_key(user) and db.get(user)[0] == hashlib.md5(psw).hexdigest(): break else: prompt = '>Password or username is not right, try again.\n>New user sigup first(sigup) || Existing user enter your username\n> ' continue timeNow = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time())) db[user] = hashlib.md5(psw).hexdigest(), timeNow diffTime = float(time.time() - time.mktime(time.strptime(db[user][1],'%Y-%m-%d %H:%M:%S'))) / 3600 if diffTime <= 4: print 'You already logged in at: ', db[user][1] print '>***Welcome, %s!***' % userdef manage(): prompt = '>(D)elete a user\n>(S)how all user\n>(O)ut put\n>(Q)uit\n>' done = False while not done: # 是否要跳出选择 chosen = False while not chosen: try: choice = raw_input(prompt).strip()[0].lower() except (EOFError, KeyboardInterrupt): choice = 'q' print '\nYou picked: [%s]' % choice if choice not in 'sdqo': print '>Invalid option, try again!' else: chosen = True if choice == 'd': user = raw_input('>Enter the user which you want to delete: ') if user in db: del db[user] print '>Remove %s ... Done!' % user else: print '>User has no name: %s ' % user if choice == 's': for user in db: print user if choice == 'q': done = True# 此函数用于展示输入和作为引擎def showmunue(): # 展示你可以输入的标语 prompt = """ (S)igup (L)ogin (M)anage (Q)uit >Enter your choice: """ # 是否要跳出循环 done = False while not done: # 是否要跳出选择 chosen = False while not chosen: try: choice = raw_input(prompt).strip()[0].lower() except (EOFError, KeyboardInterrupt): choice = 'q' print '\nYou picked: [%s]' % choice if choice not in 'slmq': print '>Invalid option, try again!' else: chosen = True if choice == 'q': done = True if choice == 's': sigup() if choice == 'm': manage() if choice == 'l': login()if __name__ == '__main__': showmunue() db.close()
9-15
rse.ArgumentParser()parser.add_argument("file_A")parser.add_argument("file_B")parser.add_argument("-c", "--copy", action="store_true", help="copy file A to file B")args = parser.parse_args()if args.copy: fileA = open(args.file_A, 'r+') fileB = open(args.file_B, 'w+') fileB.write(fileA.read()) fileA.close() fileB.close()9-16
fsource = open("4-1.txt", "r")ftarget = open("filetest.txt", 'w+')for line in fsource: if len(line)-1 <= 80: ftarget.write(line) else: writeline = line while len(writeline)-1 > 80: i = 79 while i >= 0: if writeline[i] in [' ', ',', ':', ';', '.', '!']: ftarget.write(writeline[0:i+1] + '\n') writeline = writeline[i+1:] break; i -= 1 ftarget.write(writeline) fsource.close()ftarget.close()
9-17
#!/user/bin/env python# -*- coding:utf-8 -*-import osdef create(): filename = raw_input('Filename need:').strip() cwd = os.getcwd() filelist = os.listdir(cwd) if filename in filelist: print 'Filename already taken, try another' else: newfile = open(filename, 'w+') content = raw_input('Write something:') newfile.write(content) newfile.close()def display(): filename = raw_input('Filename need:').strip() cfile = open(filename, 'r') for row, line in enumerate(cfile): print row, line cfile.close()def edit(): filename = raw_input('Filename need:').strip() cfile = open(filename, 'r+') linenum = raw_input('Enter the num of line you want to edit:') buffer_file = open('test.txt', 'w+') for row, line in enumerate(cfile): if row == int(linenum): line = raw_input('Edit content:') buffer_file.write(line) buffer_file = open('test.txt', 'r') cfile = open(filename, 'w+') cfile.write(buffer_file.read()) cfile.close() buffer_file.close()def save(): passdef showmunue(): # 展示你可以输入的标语 prompt = """ (C)reate a file (D)isplay a file (E)dit file (S)ave (Q)uit >Enter your choice: """ # 是否要跳出循环 done = False while not done: # 是否要跳出选择 chosen = False while not chosen: try: choice = raw_input(prompt).strip()[0].lower() except (EOFError, KeyboardInterrupt): choice = 'q' print '\nYou picked: [%s]' % choice if choice not in 'cdesq': print '>Invalid option, try again!' else: chosen = True if choice == 'q': done = True if choice == 'c': create() if choice == 'd': display() if choice == 'e': edit() if choice == 's': save()if __name__ == '__main__': showmunue()
9-18
fn=raw_input("file:")n=int(raw_input("num:").strip())char=chr(n)fp=open(fn,'r')all_line=fp.readlines()fp.close()context=''.join(all_line)cnt=context.count(char)print cnt
9-19
import randomdef radint_bin_file(value, counting, lens): ran_lens = lens - counting rans = [] n = 0 while n < ran_lens: ran = random.randint(0, 255) if ran == value: continue else: rans.append(chr(ran)) n += 1 for i in range(counting): rans.insert(random.randint(0, ran_lens), chr(value)) filename = open(r'radombin.txt', 'wb') filename.write(''.join(rans)) filename.close()radint_bin_file(65, 5, 38)filename = open(r'radombin.txt', 'rb')for i in filename: print i filename.seek(0, 0)print len(filename.readlines()[0])filename.close()
9-20
import gzipimport shutilwith open('filetest.txt', 'rb') as f_in, gzip.open('filetest.txt.gz', 'wb') as f_out: shutil.copyfileobj(f_in, f_out)9-21
import zipfiledef zip_create(): zipname = raw_input('zipname: ') myzip = zipfile.ZipFile(zipname) myzip.close()def zip_add(): zipname = raw_input('zipname: ') myzip = zipfile.ZipFile(zipname, 'a') filename = raw_input('filename: ') myzip.write(filename)def zip_extra(): zipname = raw_input('zipname: ') myzip = zipfile.ZipFile(zipname, 'a') filename = raw_input('filename: ') myzip.extract(filename)9-22
me, zipfilezipname = raw_input('zipname: ')print 'zip file size: %d bytes' % (os.stat(zipname).st_size)myzip = zipfile.ZipFile(zipname, 'r', 8)print 'filename\tdatetime\t\t size compress size\trate'for info in myzip.infolist(): t = time.ctime(time.mktime(tuple(list(info.date_time) + [0, 0, 0]))) rate = float(info.compress_size) / info.file_size * 100 print '%s\t%s %d\t%d\t\t%.2f%%' % (info.filename, t, info.compress_size, info.file_size, rate)myzip.close()
9-23
import tarfiledef tar_create(): tarname = raw_input('tarname: ') mytar = tarfile.open(zipname, 'w:gz') mytar.close()def tar_add(): tarname = raw_input('tarname: ') mytar = tarfile.open(zipname, 'w:gz') filename = raw_input('filename: ') mytar.add(filename) mytar.close()def tar_extra(): tarname = raw_input('tarname: ') mytar = tarfile.open(zipname, 'r:gz') filename = raw_input('filename: ') mytar.extractall() mytar.close()
0 0
- python核心编程--第九章 9.11 练习
- Python核心编程 第九章练习
- python核心编程第九章练习
- Python核心编程 第九章
- 《Python核心编程》第九章
- python 核心编程 第九章
- Python核心编程第九章笔记
- python核心编程第九章答案
- python核心编程第九章(9-11)
- python核心编程第九章(9-10)
- python核心编程第九章(9-12)
- python 核心编程第九章练习题
- Python核心编程-练习
- 《Python核心编程》第九章编程题代码
- Python核心编程 练习 第二章
- Python核心编程 练习 第五章
- Python核心编程 练习 第六章
- 《python核心编程》第二章练习答案
- java 运算符学习笔记 面试题
- Activity 启动模式及任务栈管理
- 写给刚选择软件工程的你
- 算法——洗洗脑子吧
- Java源码-简单手绘程序
- python核心编程第九章练习
- LeetCode 342 Power of Four
- 随机森林------random forest
- linux学习笔记
- 多线程下载文件和断点续传的简单实现
- Hibernate的HQL简单查询语句
- 关于c++的struct与class区别
- 博客开篇
- 随机数math包 switch 的用法 笔记