9–15. 複製檔案. 提示輸入兩個檔案名稱(或者使用命令列參數 ). 把第一個檔案的內容複寫
到第二個檔案中去.
#filename:test9-15.pydef copyfile(): fs=raw_input("source file:").strip() #fd=raw_input("destination file:").strip() fd="G:\\copy.txt" fsp=open(fs,'r') fdp=open(fd,'w') for line in fsp: fdp.writelines(line) fsp.close() fdp.close()copyfile()
9–17. 文本處理. 建立一個原始的文字檔編輯器. 你的程式應該是菜單驅動的, 有如下
這些選項:
1) 建立檔案(提示輸入檔案名稱和任意行的文本輸入),
2) 顯示檔案(把檔案的內容顯示到螢幕),
3) 編輯檔案(提示輸入要修改的行, 然後讓使用者進行修改),
4) 儲存檔案, 以及
5) 退出
#filename:9-17.pyimport osls=os.linesepfname=''def createfile(): prompt="Enter file name:" while True: fname=raw_input(prompt).strip() if os.path.exists(fname): prompt="Already exist,Enter another:" else: break fp=open(fname,'a+') prompt="Input one line:" while True: eachline=raw_input(prompt) if eachline!='': fp.write('%s%s'%(eachline,ls)) prompt="Input another line:" else: break fp.close() def showfile(): fname=raw_input("Enter file name:").strip() fp=open(fname,'r') for line in fp: print line, fp.close() def editfile(): fname=raw_input("Enter file name:").strip() fp=open(fname,'r') old=fp.readlines() fp.close() while True: l = raw_input("Enter line to edit:").strip() if l=='q': break line=int(l) lcontent=raw_input("Enter content:") if line > len(old): old.append(lcontent) else: old[line]=lcontent fp=open(fname,'a') fp.truncate() for cont in old: fp.write('%s%s'%(cont,ls)) fp.close() def savefile(): passdef showmune(): notice=''' ---------------------------------------------- 1) 建立檔案(提示輸入檔案名稱和任意行的文本輸入), 2) 顯示檔案(把檔案的內容顯示到螢幕), 3) 編輯檔案(提示輸入要修改的行, 然後讓使用者進行修改), 4) 儲存檔案, 以及 5) 退出. ----------------------------------------------- >>''' while True: choice=int(raw_input(notice).strip()) if choice==1: createfile(); elif choice==2: showfile(); elif choice==3: editfile(); elif choice==4: savefile(); else: breakif __name__=="__main__": showmune()
9–18. 搜尋檔案. 提示輸入一個位元組值(0 - 255)和一個檔案名稱. 顯示該字元在檔案中出現
的次數.
#filename:test9-18.pyfn=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