當前位置:首頁 » 編程語言 » python文件寫入覆蓋

python文件寫入覆蓋

發布時間: 2023-03-07 06:08:10

python open會覆蓋么

如果是"wb","w" 就會覆蓋.

open("xxx","wb")

Ⅱ Python文件操作,看這篇就足夠!

文件的存儲方式

在計算機中,文件是以二進制的方式保存在磁碟上的文本文件和二進制文件

文本文件可以使用文本編輯軟體查看本質上還是二進制文件

二進制文件保存的內容不是給人直接閱讀的,而是提供給其她軟體使用的二進制文件不能使用文件編輯軟體查看

文件基本操作

在計算機中要操作文件一共包含三個步驟:1.打開文件2.讀、寫文件

讀 將文件內容讀入內容寫 將內存內容寫入文件

模式描述

t文本模式 (默認)。

x寫模式,新建一個文件,如果該文件已存在則會報錯。

b二進制模式。

+打開一個文件進行更新(可讀可寫)。

U通用換行模式(不推薦)。

r以只讀方式打開文件。文件的指針將會放在文件的開頭。這是默認模式。

rb以二進制格式打開一個文件用於只讀。文件指針將會放在文件的開頭。這是默認模式。一般用於非文本文件如圖片等。

r+打開一個文件用於讀寫。文件指針將會放在文件的開頭。

rb+以二進制格式打開一個文件用於讀寫。文件指針將會放在文件的開頭。一般用於非文本文件如圖片等。

w打開一個文件只用於寫入。如果該文件已存在則打開文件,並從開頭開始編輯,即原有內容會被刪除。如果該文件不存在,創建新文件。

wb以二進制格式打開一個文件只用於寫入。如果該文件已存在則打開文件,並從開頭開始編輯,即原有內容會被刪除。如果該文件不存在,創建新文件。一般用於非文本文件如圖片等。

w+打開一個文件用於讀寫。如果該文件已存在則打開文件,並從開頭開始編輯,即原有內容會被刪除。如果該文件不存在,創建新文件。

wb+以二進制格式打開一個文件用於讀寫。如果該文件已存在則打開文件,並從開頭開始編輯,即原有內容會被刪除。如果該文件不存在,創建新文件。一般用於非文本文件如圖片等。

a打開一個文件用於追加。如果該文件已存在,文件指針將會放在文件的結尾。也就是說,新的內容將會被寫入到已有內容之後。如果該文件不存在,創建新文件進行寫入。

ab以二進制格式打開一個文件用於追加。如果該文件已存在,文件指針將會放在文件的結尾。也就是說,新的內容將會被寫入到已有內容之後。如果該文件不存在,創建新文件進行寫入。

a+打開一個文件用於讀寫。如果該文件已存在,文件指針將會放在文件的結尾。文件打開時會是追加模式。如果該文件不存在,創建新文件用於讀寫。

ab+以二進制格式打開一個文件用於追加。如果該文件已存在,文件指針將會放在文件的結尾。如果該文件不存在,創建新文件用於讀寫。

文件打開模式有很多,但是我們實際用到的就只有六種。

我們總結一下主要用到的是下面六種

模式可做操作若文件不存在是否覆蓋文件原來內容

r只讀報錯——

r+可讀、可寫報錯是

w只寫創建是

w+可讀、可寫創建是

a只寫創建否,追加寫

a+可讀、可寫創建否,追加寫

只讀模式打開文件——只讀(r)

文件若不存在報錯:

讀寫模式打開文件——讀寫模式(r+)

數據寫入之前:

數據寫入之後:

會替換掉相同長度的內容

文件若不存在報錯:

寫模式打開文件——寫模式(w)

數據寫入之前:

數據寫入之後:

這種操作會刪除原來的文件內容,重新寫入Python,

並且把游標放在文件最開始。

若文件不存在,系統會創建該文件夾並重新寫入內容

讀寫模式打開文件——讀寫模式(w+)

數據寫入之前:

數據寫入之後:

這種操作會刪除原來的文件內容,重新寫入Python,

並且把游標放在文件最開始。

若文件不存在,系統會創建該文件夾並重新寫入內容

利用這個原理所以文件寫模式(w)、讀寫模式(w+)還可以用作刪除文件內容。

因為他們整個工作原理就是把文件原來的內容刪除,然後寫入新的內容。

如果我們寫入的內容為空,那麼不就是刪除文件內容。

數據寫入之前:

數據寫入之後:

寫模式打開文件(追加內容)——寫模式(a)

數據寫入之前:

數據寫入之後:

可以看到是在原先內容的基礎上在文末追加新的內容!

若文件不存在,系統會創建新的文件夾並寫入內容

讀寫模式打開文件(追加內容)——讀寫模式(a)

數據寫入之前:

數據寫入之後:

可以看到是在原先內容的基礎上在文末追加新的內容!

若文件不存在,系統會創建新的文件夾並寫入內容

二進制模式打開文件

我們看到了在文件打開模式中有以下模式:rb、wb……有這種帶 b 的。

什麼意思呢?

就是用二進制的方式打開文件。

很明顯,我們出現了以下錯誤:

主要原因是因為編碼的問題,可能是因為0x82這個位元組在gbk編碼中沒有這個字元,

可能原字元是兩個位元組,在gbk里被解析成了一個位元組,導致字元不存在。

這就是我們文件打開方式需要使用二進制讀取的原因。

文件操作

open 函數負責打開文件,並且返迴文件對象

read /write / close 三個方法都需要通過文件對象 來調用

文件和文件夾的操作

在Python中⽂件和⽂件夾的操作要藉助os模塊⾥⾯的相關功能,

具體步驟如下:

導⼊os模塊

使⽤ os 模塊相關功能

1、文件重命名

2、刪除文件

3、創建文件夾

4、刪除文件夾

5、獲取當前目錄

6、改變默認目錄

7、獲取目錄列表

Ⅲ python request/讀寫/上傳文件

python 讀寫文件:

data_json = json.mps(result_r)  #json字元串  

f =open('E://XXX.txt',"a+")  #打開文件,追加+讀寫

f.write(data_json) # data_json 寫入XXX.txt'文件

f.seek(0)  # 游標移動到文件開頭

lines = f.read() # 逐行讀入

f.close() #關閉文件

mode 打開的方式(r,w,a,x,b,t,r+,w+,a+,U)

r 以只讀方式打開文件。文件的指針會放在文件的開頭。

w 以寫入方式打開文件。文件存在覆蓋文件,文件不存在創建一個新文件。

a 以追加方式打開文件。如果文件已存在,文件指針放在文件末尾。如果文件不存在,創建新文件並可寫入。

r+ 打開一個文件用於讀寫,文件指針會放在文件的開頭

w+ 打開一個文件用於讀寫,文件存在覆蓋文件,文件不存在創建一個新文件。

a+ 打開一個文件用於讀寫,如果文件已存在,文件指針放在文件末尾。如果文件不存在,創建新文件並可寫入。

記憶方法:記住r讀,w寫,a追加,每個模式後加入+號就變成可讀寫。

f =open('E://xxx.txt',"a+")    /    f=open(r'E://xxx.txt',mode='a+',encoding='UTF-8')

踩坑1>  

沒有加encoding='UTF-8',可能會報如下錯:

import requests  # 使用 request函數需導入 request 庫

import json   #使用 JSON 函數需要導入 json 庫: import json 。

param ={} #請求body

url ='http://域名/api' 

header = {'content-type':'application/json'}

r = requests.post(url,json=param,headers=header)    #發送post請求

result_r = r.json() #請求返回的json傳入對象result_r

data_json = json.mps(result_r)  #將 Python-result_r對象轉為字元串 json.mps()

文件上傳請求(csv文件)

file_path = "xxx.csv"   文件路徑

uploaddata = {"file":open(file_path, "rb")}  

file_upload_result = requests.post(api_URL, files=uploaddata, cookies=cookie)

Ⅳ 求Python讀取文件後寫入內容替換原內容的辦法

先將內容 讀取到內存中修改,然後使用w模式直接覆蓋原文件。
如果文件較大,可以分割寫入一個新文件,然後將原文件刪除,將新文件重命名為原文件。

Ⅳ python xml循環寫入覆蓋了怎麼辦

在輸入一遍。
這種情況下,執行該package時會拋出error錯誤,即循環引用,因為molea試圖去引入moleb時,而moleb首先要引入molea,這會導致Python解釋器無法執行下去。
mole中的函數以attribute的方式引用anothermole中的函數或變數等,之所以要掛上packagename來引入,是由於import這種形式的相對引入會報語法錯誤,而掛上package的絕對引入,Python2和3都支持。

Ⅵ 如何通過python3寫入txt文件

使用open方法打開一個txt文件,句柄保存在f中。注意第二個參數w,表明是可寫模式,只有這種模式你才可以寫入文字。第一個參數大家都知道,就是文件路徑,如果文件不存在,那麼會自動創建一個該目錄下的txt文件。
寫入文字,用write
如果你一次有多行要寫入,你可以用一個列表作為參數:
如果寫入完畢,我們需要關閉文件,用到的close方法。
最後看一下,已經寫入到tt記事本了。
open(path,'w'):w模式下,寫入內容會覆蓋掉原來的內容,所以我們還有另一個模式叫做追加模式,就是a模式

Ⅶ python操作文本文件

在磁碟上讀寫文件之前,必須先打開這個文件。打開文件就需要提供文件的路徑。

在與Python程序同一個目錄下,我們有一個名為 pi.txt 的文件,它的內容如下:

現在使用Python來打開和關閉它:

執行此程序不會有任何輸出,這表示著打開和關閉文件都得到了正確執行。

可以看到,使用 open() 函數打開文件,參數為文件名(或文件路徑);該函數會返回一個文件句柄,文件句柄並不會實際保存文件的內容,而是代表著一種操作,在上面的例子中,文件句柄被賦值給變數 fhand 。

打開文件後,程序具有讀(默認)該文件的許可權。

最後,使用文件句柄的 close() 方法關閉文件。這非常重要,因為使用完而沒有關閉的文件會佔用內存或造成安全問題。

如果Python找不到該文件,則會返回錯誤,比如下面這樣:

Python提示我們沒有相應的文件或者目錄: 'pii.txt'。

打開文件後就可以對文件進行操作:

fhand.read() 方法將文件內容作為一個字元串返回。

文件中的每一行末尾使用換行符 \n 表示換行,例子中方法 rstrip() 去掉文本中的換行符,然後輸出。

程序的運行效果如下:

如果在文件關閉之前程序發生BUG意外退出,則文件不會關閉,為了避免此類事件的發生,可以使用 with 語句:

with 語句的特點是即便在操作文件時發生錯誤,文件也會自動被清理。

fhand.read() 雖然可以讀取文本內容,但是當我們想要逐行處理文件內容,或者文件很大而無法一次性載入進內存的時候,就不適用了。

可以使用 for 語句逐行處理文件內容:

本程序中將文件名保存在變數 filename 中。

打開文件後,使用 for 語句按行讀取文件內容。例子中,每次循環依次取一行文本以字元串的格式保存在變數 line 中,每次循環中變數 count 自增1。

這個程序的作用是,打開程序所在目錄的 when_old.txt 文件,然後統計行數,並輸出結果。

when_old.txt 文件的內容是:

可以使用其他方法操作字元串 line :

程序將以 'And' 開頭的行列印出來。

打開文件後,默認的許可權是讀(r),如果要寫文件,則需要使用寫(w)或者追加(a)許可權。

w許可權,打開一個文件用於寫入。如果該文件存在,則覆蓋該文件;如果該文件不存在,則創建該文件。

a許可權,打開一個文件用於追加。如果該文件存在,在文件末尾追加;如果該文件不存在,則創建該文件。

下面是一個使用w許可權打開文件的例子:

例子中使用w許可權打開該文件,並寫入兩行。(如果該文件存在,則內容會被覆蓋)

fhand.write() 不會自動添加換行符,所以如果需要換行,需在末尾添加 \n 。

下面我們寫一個統計文件中詞頻的程序。

它會統計文件中各個詞的出現的次數,然後由高到低顯示出前5個詞。

首先我們完成打開和關閉文件的程序內容:

在例子中,由用戶輸入文件名,並且使用異常捕獲以處理文件打開時的錯誤。

下面對內容進行統計:

這個程序:

如此,我們就在字典中存放了 單詞:次數 的鍵值對。

由於字典不能保存順序,所以不能對其進行排序。為此,將每個鍵值對都添加到一個列表中:

在列表 word_list 中,每一項都是一個元組,每個元組第一個值是單詞出現的次數,第二個值是單詞內容。

對其進行逆向(由大到小)排序:

列印最終結果:

整個程序如下:

下面是程序運行結果的示例:

熱點內容
類庫編譯 發布:2024-05-22 08:50:09 瀏覽:677
編譯程序是c加密 發布:2024-05-22 08:48:36 瀏覽:820
河南伺服器cpu散熱片雲空間 發布:2024-05-22 08:40:10 瀏覽:126
小陳訪問 發布:2024-05-22 08:23:18 瀏覽:221
ftp上傳文件shell 發布:2024-05-22 08:18:05 瀏覽:876
安卓airpords降噪怎麼弄 發布:2024-05-22 08:18:01 瀏覽:492
se腳本 發布:2024-05-22 08:09:07 瀏覽:964
怎麼刪除linux 發布:2024-05-22 08:04:50 瀏覽:149
go和python 發布:2024-05-22 07:58:26 瀏覽:237
at24c02存儲晶元的參考文獻 發布:2024-05-22 07:28:26 瀏覽:727