Python 修改檔案

來源:互聯網
上載者:User

標籤:utf-8   style   move   username   run   pen   方便   div   問題   

一、有時候我們會遇到在寫入檔案後,其實內容並未被寫到檔案裡面的問題

#原因是內容先寫到緩衝區,緩衝區滿時,才寫入磁碟#解決:用f.flush()強制把緩衝區裡面的資料寫到磁碟上fw = open(‘username.txt‘,w)fw.write(‘測試‘)fw.flush()

二、修改檔案簡單直接的方法(replace()),此方法當檔案內容較多時,效率不高,會出現記憶體溢出的情況

1、開啟一個檔案,擷取到檔案的內容read方法(傳回型別是str)

2、對內容進行修改

3、清空原來的內容truncate方法

4、把新的內容寫到檔案

f= open(‘username.txt‘,‘a+‘)f.seek(0)#a+模式檔案指標預設在檔案末尾,用seek(0)將檔案指標放到開頭all_str = f.read()#傳回型別是str,當檔案內容較多時,效率不高new_str = all_str.replace(‘123456‘,‘789012‘)#替換檔案內容
f.seek(0)
f.truncate()#清空檔案內容f.write(new_str)#將修改後的檔案內容寫入檔案f.close()#關閉檔案

修改檔案內容中舉例:給檔案中的使用者名稱前統一加值test_

 f = open(‘username.txt‘,‘a+‘) f.seek(0)all_str = ‘‘#每次迴圈的時候把字串拼接起來,然後最後寫入檔案for line in f:#f.readlines()把檔案裡面所有的東西一次都讀出來放到list裡面,檔案大的話效率不高     new_line = ‘test_‘ + line     all_str += new_line f.seek(0) f.truncate()#清空檔案內容 f.write(all_str) f.close()

 三、以上修改檔案方法當檔案小時用起來是比較方便的,但檔案大時效率不高,以下介紹一種效率比較高的方法

1、開啟兩個檔案2、a檔案,一行一行修改3、寫一行寫到b檔案4、a.txt a.txt.bak5、刪除a檔案,b檔案的名字改為a檔案名稱#f.write()只能寫字串# f.writelines()迴圈寫入,會協助咱們迴圈list寫入import oswith open(‘words‘,encoding=‘utf-8‘) as fr,open(‘.words.bak‘,‘w‘,encoding=‘utf-8‘) as fw:    for line in fr:        new_line = line.replace(‘測試‘,‘test‘)        fw.write(new_line)os.remove(‘words‘)#刪除檔案os.rename(‘.words.bak‘,‘words‘)#改名

 

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.