先來看一段創建文件并寫入文本的代碼,然后作介紹。
#!/usr/bin/env python 'makeFile.py -- create a file' import os ls = os.linesep # get filename while True: fname = raw_input('Input an unused file name >') if os.path.exists(fname): print "ERROR: '%s' already exists" %fname else: break # get file content lines all = [] print "/nEnter lines (input '.' to quit)./n" # loop until user terminates input while True: entry = raw_input('>') if entry == '.': break else: all.append(entry) # write lines to file with proper line-ending fobj = 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 filename fname = raw_input('Enter filename >') print # attempt to open file for reading try: fobj = open(fname, 'r') except IOError, e: print "***** file open error:", e else: # display contents to the screen for eachLine in fobj: print eachLine, fobj.close() 上面的代碼用來讀文件并顯示其內容到屏幕上,使用了try-except-else異常處理機制。
這里簡單介紹下try的工作原理:當開始一個try語句后,python就在當前程序的上下文中作標記,這樣當異常出現時就可以回到這里,try子句先執行,接下來會發生什么依賴于執行時是否出現異常。
#1、如果當try后的語句執行時發生異常,python就跳回到try并執行第一個匹配該異常的except子句,異常處理完畢,控制流就通過整個try語句(除非在處理異常時又引發新的異常)。
#2、如果在try后的語句里發生了異常,卻沒有匹配的except子句,異常將被遞交到上層的try,或者到程序的最上層(這樣將結束程序,并打印缺省的出錯信息)。
#3、如果在try子句執行時沒有發生異常,python將執行else語句后的語句(如果有else的話),然后控制流通過整個try語句。
總結
以上就是本文關于分享一個簡單的python讀寫文件腳本的全部內容,希望對大家有所幫助。如有不足之處,歡迎留言指出。感謝朋友們對本站的支持!
新聞熱點
疑難解答