分享一個(gè)簡(jiǎn)單的python讀寫(xiě)文件腳本
先來(lái)看一段創(chuàng)建文件并寫(xiě)入文本的代碼,然后作介紹。
#!/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'
上面的代碼用來(lái)創(chuàng)建一個(gè)新文件并寫(xiě)入文本,第6行給os模塊中的linesep起了給別名ls,這樣做的好處一方面簡(jiǎn)化了長(zhǎng)長(zhǎng)的變量名,另一方面也是主要原因用于提高代碼性能,因?yàn)樵L(fǎng)問(wèn)這個(gè)變量時(shí)首先要檢測(cè)os模塊,然后再解析linesep,linesep是行結(jié)束符標(biāo)志,linux下是'\r',windows下是'\r\n',用本地變量保存更好。第34行使用了__name__,這主要用于代碼內(nèi)測(cè)試,它的值是__main__,但python文件通常作為模塊被其它文件import,這時(shí)__name__的值是這個(gè)模塊名,就不會(huì)執(zhí)行模塊內(nèi)的測(cè)試代碼了。
#!/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()
上面的代碼用來(lái)讀文件并顯示其內(nèi)容到屏幕上,使用了try-except-else異常處理機(jī)制。
這里簡(jiǎn)單介紹下try的工作原理:當(dāng)開(kāi)始一個(gè)try語(yǔ)句后,python就在當(dāng)前程序的上下文中作標(biāo)記,這樣當(dāng)異常出現(xiàn)時(shí)就可以回到這里,try子句先執(zhí)行,接下來(lái)會(huì)發(fā)生什么依賴(lài)于執(zhí)行時(shí)是否出現(xiàn)異常。
#1、如果當(dāng)try后的語(yǔ)句執(zhí)行時(shí)發(fā)生異常,python就跳回到try并執(zhí)行第一個(gè)匹配該異常的except子句,異常處理完畢,控制流就通過(guò)整個(gè)try語(yǔ)句(除非在處理異常時(shí)又引發(fā)新的異常)。
#2、如果在try后的語(yǔ)句里發(fā)生了異常,卻沒(méi)有匹配的except子句,異常將被遞交到上層的try,或者到程序的最上層(這樣將結(jié)束程序,并打印缺省的出錯(cuò)信息)。
#3、如果在try子句執(zhí)行時(shí)沒(méi)有發(fā)生異常,python將執(zhí)行else語(yǔ)句后的語(yǔ)句(如果有else的話(huà)),然后控制流通過(guò)整個(gè)try語(yǔ)句。
總結(jié)
以上就是本文關(guān)于分享一個(gè)簡(jiǎn)單的python讀寫(xiě)文件腳本的全部?jī)?nèi)容,希望對(duì)大家有所幫助。如有不足之處,歡迎留言指出。感謝朋友們對(duì)本站的支持!
相關(guān)文章
pyqt5 QProgressBar清空進(jìn)度條的實(shí)例
今天小編就為大家分享一篇pyqt5 QProgressBar清空進(jìn)度條的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-06-06python中字典dict常用操作方法實(shí)例總結(jié)
這篇文章主要介紹了python中字典dict常用操作方法,實(shí)例總結(jié)了Python針對(duì)字典操作的技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2015-04-04python進(jìn)行OpenCV實(shí)戰(zhàn)之畫(huà)圖(直線(xiàn)、矩形、圓形)
這篇文章主要為大家詳細(xì)介紹了python進(jìn)行OpenCV實(shí)戰(zhàn)之畫(huà)圖功能,畫(huà)出直線(xiàn)、矩形、圓形,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-08-08tensorflow使用CNN分析mnist手寫(xiě)體數(shù)字?jǐn)?shù)據(jù)集
這篇文章主要介紹了tensorflow使用CNN分析mnist手寫(xiě)體數(shù)字?jǐn)?shù)據(jù)集,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-06-06使用Python中PDB模塊中的命令來(lái)調(diào)試Python代碼的教程
這篇文章主要介紹了使用Python中PDB模塊中的命令來(lái)調(diào)試Python代碼的教程,包括設(shè)置斷點(diǎn)來(lái)修改代碼等、對(duì)于Python團(tuán)隊(duì)項(xiàng)目工作有一定幫助,需要的朋友可以參考下2015-03-03Python datetime庫(kù)函數(shù)的示例詳解
datetime?是 Python 內(nèi)置的日期時(shí)間處理庫(kù),它包含了處理日期、時(shí)間、時(shí)間間隔等的類(lèi)和函數(shù),這篇文章主要介紹了Python datetime庫(kù)函數(shù)的詳解,需要的朋友可以參考下2023-07-07Python安裝和配置uWSGI的詳細(xì)過(guò)程
這篇文章主要介紹了Python uWSGI 安裝配置,本文主要介紹如何部署簡(jiǎn)單的 WSGI 應(yīng)用和常見(jiàn)的 Web 框架,以 Ubuntu/Debian 為例給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-07-07