標籤:python file
#!/usr/bin/env python'makeFile.py -- create a file'import osls = os.linesep# get filenamewhile True:fname = raw_input('Input an unused file name >')if os.path.exists(fname):print "ERROR: '%s' already exists" %fnameelse:break# get file content linesall = []print "\nEnter lines (input '.' to quit).\n"# loop until user terminates inputwhile True:entry = raw_input('>')if entry == '.':breakelse:all.append(entry)# write lines to file with proper line-endingfobj = open(fname, 'w')fobj.writelines(['%s%s' %(x, ls) for x in all])fobj.close()print 'DONE'if __name__ == '__main__':print 'innter module'
上面的代碼用來建立一個新檔案並寫入文本,第6行給os模組中的linesep起了給別名ls,這樣做的好處一方面簡化了長長的變數名,另一方面也是主要原因用於提高代碼效能,因為訪問這個變數時首先要檢測os模組,然後再解析linesep,linesep是行結束符標誌,linux下是‘\r‘,windows下是‘\r\n‘,用本地變數儲存更好。第34行使用了__name__,這主要用於代碼內測試,它的值是__main__,但python檔案通常作為模組被其它檔案import,這時__name__的值是這個模組名,就不會執行模組內的測試代碼了。
#!/usr/bin/env python'readFile.py -- read and display file'# get filenamefname = raw_input('Enter filename >')print # attempt to open file for readingtry:fobj = open(fname, 'r')except IOError, e:print "***** file open error:", eelse:# display contents to the screenfor eachLine in fobj:print eachLine,fobj.close()
上面的代碼用來讀檔案並顯示其內容到螢幕上,使用了try-except-else異常處理機制。
一個簡單的python讀寫檔案指令碼