摘要:今天我們來討論下下如何實現打開文件修改文件關閉文件的操作本文采用逐行解釋的方法。這樣,我們就實現了文件的修改。
今天我們來討論下python下如何實現:打開文件—修改文件——關閉文件的操作
本文采用逐行解釋的方法。
思路:第一步:把文件讀取出來
第二部:再用"w"模式寫入到新文件
第三部:把原文件刪除,并且把新文件重命名回原文件
這樣就實現了文件的修改操作
我們先來看看原文件的內容
with open("xiakexing") as old_file: print(old_file.read())
趙客縵胡纓,吳鉤霜雪明。銀鞍照白馬,颯沓如流星。 十步殺一人,千里不留行。事了拂衣去,深藏身與名。 閑過信陵飲,脫劍膝前橫。將炙啖朱亥,持觴勸侯嬴。 三杯吐然諾,五岳倒為輕。眼花耳熱后,意氣素霓生。 救趙揮金錘,邯鄲先震驚。千秋二壯士,烜赫大梁城。 縱死俠骨香,不慚世上英。誰能書閣下,白首太玄經。
我們想要做的修改是把第二行的千里不留行改成“萬里不流行”
補充說明:用with open()格式可以同時打開兩個文件,本例中實際上是打開文件xiakexing,并且創建文件xiakexing.bak,分別創建對應的文件對象old_file和new_file
with open("xiakexing") as old_file,open("xiakexing.bak","w") as new_file: #采用for循環從文件對象old_file里迭代地讀取文件,簡單來講就是一行一行地讀取文件,這樣內存中只存儲了一行文件的內容,節省了內存,也防止文件過大時造成的“超載” for i in old_file: if "千里不留行" in i: #這里每讀取一行我們就對其進行條件判斷,判斷該行是否是我們要找的那一行 i = i.replace("千","萬")#當找到該行時,把該行的內容替換成我們想要的內容 #每讀取一行我們就在新文件中寫入一行,不管該行有沒有變化,總之就是讀一行、寫一行、讀一行、寫一行 new_file.write(i) #當for循環結束后,文件也已經被我們修改完畢了,這時應該刪除舊文件,重命名新文件,為了實現這一目的,我們引入了os模塊,os模塊內主要是一些和操作系統有關的函數 import os os.remove("xiakexing") #刪除原文件 os.rename("xiakexing.bak","xiakexing") #把新文件重命名回原文件名,最終實現了文件的修改
然后我們再來看看文件的內容
with open("xiakexing") as old_file: print(old_file.read())
趙客縵胡纓,吳鉤霜雪明。銀鞍照白馬,颯沓如流星。 十步殺一人,萬里不留行。事了拂衣去,深藏身與名。 閑過信陵飲,脫劍膝前橫。將炙啖朱亥,持觴勸侯嬴。 三杯吐然諾,五岳倒為輕。眼花耳熱后,意氣素霓生。 救趙揮金錘,邯鄲先震驚。千秋二壯士,烜赫大梁城。 縱死俠骨香,不慚世上英。誰能書閣下,白首太玄經。
這樣,我們就實現了文件的修改。由于我們使用的是with open() as 的方法,所以不需要文件關閉的步驟,如果是通過file=open()的方式開打的文件,則必須在末尾加上關閉文件的語句。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/42552.html
摘要:默認為或者說,是以格式保存對象如果設置為或者,則以壓縮的二進制格式保存對象。但是,要小心坑試圖增加一個坑就在這里當試圖修改一個已有鍵的值時沒有報錯,但是并沒有修改成功。要填平這個坑,需要這樣做多一個參數沒有坑了還用循環一下 pickle pickle是標準庫中的一個模塊,在Python 2中還有一個cpickle,兩者的區別就是后者更快。所以,下面操作中,不管是用import pick...
摘要:目錄操作文件與文件夾操作文件與文件夾案例批量修改文件名案例批量修改文件名模塊是標準庫中的一個用于訪問操作系統功能的模塊。 目錄 OS操作文件與文件夾 案例—批量修改文件名 OS模塊是Python標準庫中的一個用于訪問操作系統功能的模塊。使用OS模塊中提供的接口,可以實現跨平臺訪...
目錄Numpy簡介Numpy操作集合1、不同維度數據的表示1.1 一維數據的表示1.2 二維數據的表示1.3 三維數據的表示2、 為什么要使用Numpy2.1、Numpy的ndarray具有廣播功能2.2 Numpy數組的性能比Python原生數據類型高3 ndarray的屬性和基本操作3.1 ndarray的基本屬性3.2 ndarray元素類型3.3 創建ndarray的方式3.4 ndarr...
摘要:元組運算符可與使用加號來連接兩個元組輸出為也可以使用乘號輸出為當然也可以用成員運算符通用地可以使用刪除元組元組相關內置函數計算元組元素個數。返回元組中元素最大值返回元組中元素最小值??傻鷮ο髮⒖傻鷮ο筠D換為元組。 元組是什么? 你可以把它看作是只讀的列表,因為元組不可改變,但是要注意,如果元組中含有列表元素,則該列表元素是可變的,通俗地講就是兒子不可變,但是孫子可變 由于元組不可...
摘要:首發于我的博客線程池進程池網絡編程之同步異步阻塞非阻塞后端掘金本文為作者原創,轉載請先與作者聯系。在了解的數據結構時,容器可迭代對象迭代器使用進行并發編程篇二掘金我們今天繼續深入學習。 Python 算法實戰系列之棧 - 后端 - 掘金原文出處: 安生??? 棧(stack)又稱之為堆棧是一個特殊的有序表,其插入和刪除操作都在棧頂進行操作,并且按照先進后出,后進先出的規則進行運作。 如...
閱讀 3164·2019-08-30 15:55
閱讀 2945·2019-08-30 13:46
閱讀 1447·2019-08-29 17:29
閱讀 3514·2019-08-29 11:08
閱讀 3439·2019-08-29 11:04
閱讀 1088·2019-08-28 18:20
閱讀 545·2019-08-26 13:37
閱讀 1327·2019-08-26 11:49