分享一個簡單的python讀寫檔案指令碼,

來源:互聯網
上載者:User

分享一個簡單的python讀寫檔案指令碼,

先來看一段建立檔案並寫入文本的代碼,然後作介紹。

  #!/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讀寫檔案指令碼的全部內容,希望對大家有所協助。如有不足之處,歡迎留言指出。感謝朋友們對本站的支援!

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.