91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python實現操作文件的方法教程

發布時間:2020-11-02 17:05:22 來源:億速云 閱讀:184 作者:Leah 欄目:開發技術

這篇文章運用簡單易懂的例子給大家介紹Python實現操作文件的方法教程,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

一、文件的概念

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

文件分為文本文件和二進制文件。

1、文本文件

可以使用文本編輯軟件查看,本質上還是二進制文件,例如:python 的源程序。

2、二進制文件

保存的內容不是給人直接閱讀的,而是提供給其他軟件使用的。例如:圖片文件、音頻文件、視頻文件等等,二進制文件不能使用文本編輯軟件查看。

Python 中,對文件的操作有很多種,常見的操作包括創建、刪除、修改權限、讀取、寫入等,這些操作可大致分為以下 2 類:

刪除、修改權限:作用于文件本身,屬于系統級操作。
寫入、讀取:是文件最常用的操作,作用于文件的內容,屬于應用級操作。

二、文件的基本操作

1、操作文件的步驟

文件的應用級操作可以分為以下 3 步,每一步都需要借助對應的函數實現:

打開文件:使用 open() 函數,該函數會返回一個文件對象;

對已打開文件做讀/寫操作:讀取文件內容可使用 read()、readline() 以及 readlines() 函數;向文件中寫入內容,可以使用 write() 函數。

關閉文件:完成對文件的讀/寫操作之后,最后需要關閉文件,可以使用 close() 函數。

2、打開文件的方式

在 Python 中,如果想要操作文件,首先需要創建或者打開指定的文件,并創建一個文件對象,而這些工作可以通過內置的 open() 函數實現。

語法如下:

  • file = open(file_name [, mode='r' [ , buffering=-1 [ , encoding = None ]]])
  • file:表示要創建的文件對象。
  • file_name:要創建或打開文件的文件名稱。
  • mode:用于指定文件的打開模式。默認以只讀(r)模式打開文件。
  • buffering:用于指定對文件做讀寫操作時,是否使用緩沖區。
  • encoding:手動設定打開文件時所使用的編碼格式,不同平臺的 ecoding 參數值也不同,以 Windows 為例,其默認為 cp936(實際上就是 GBK 編碼)。
     

打開文件的常用模式

模式說明
r以只讀方式打開文件。文件的指針將會放在文件的開頭,這是默認模式。如果文件不存在,拋出異常
w以只寫方式打開文件。如果文件存在會被覆蓋。如果文件不存在,創建新文件
a以追加方式打開文件。如果該文件已存在,文件指針將會放在文件的結尾。如果文件不存在,創建新文件進行寫入
r+以讀寫方式打開文件。文件的指針將會放在文件的開頭。如果文件不存在,拋出異常
w+以讀寫方式打開文件。如果文件存在會被覆蓋。如果文件不存在,創建新文件
a+以讀寫方式打開文件。如果該文件已存在,文件指針將會放在文件的結尾。如果文件不存在,創建新文件進行寫入

文件打開方式

Python實現操作文件的方法教程

open()是否需要緩沖區

通常情況下、建議大家在使用 open() 函數時打開緩沖區,即不需要修改 buffing 參數的值。

如果 buffing 參數的值為 0(或者 False),則表示在打開指定文件時不使用緩沖區;如果 buffing 參數值為大于 1 的整數,該整數用于指定緩沖區的大小(單位是字節);如果 buffing 參數的值為負數,則代表使用默認的緩沖區大小。

目前為止計算機內存的 I/O 速度仍遠遠高于計算機外設(例如鍵盤、鼠標、硬盤等)的 I/O 速度,如果不使用緩沖區,則程序在執行 I/O 操作時,內存和外設就必須進行同步讀寫操作,也就是說,內存必須等待外設輸入(輸出)一個字節之后,才能再次輸出(輸入)一個字節。這意味著,內存中的程序大部分時間都處于等待狀態。

而如果使用緩沖區,則程序在執行輸出操作時,會先將所有數據都輸出到緩沖區中,然后繼續執行其它操作,緩沖區中的數據會有外設自行讀取處理;同樣,當程序執行輸入操作時,會先等外設將數據讀入緩沖區中,無需同外設做同步讀寫操作。

3、read 方法 —— 讀取文件

read 方法可以一次性讀入并返回文件的所有內容。

read() 函數的基本語法格式如下:

file.read([size])

其中,file 表示已打開的文件對象;size 作為一個可選參數,用于指定一次最多可讀取的字符(字節)個數,如果省略,則默認一次性讀取所有內容。

如果忘記關閉文件,會造成系統資源消耗,而且會影響到后續對文件的訪問。

注意:read 方法執行后,會把文件指針移動到文件的末尾。

示例:

# 1. 打開 - 文件名需要注意大小寫
file = open("README")

# 2. 讀取
text = file.read()
print(text)

# 3. 關閉
file.close()

在開發中,通常會先編寫打開和關閉的代碼,再編寫中間針對文件的讀/寫操作!

4、按行讀取文件內容

read 方法默認會把文件的所有內容一次性讀取到內存。

如果文件太大,對內存的占用會非常嚴重。

readline 方法可以一次讀取一行內容,包含最后的換行符“\n”。方法執行后,會把文件指針移動到下一行,準備再次讀取。

file.readline([size])

其中,file 為打開的文件對象;size 為可選參數,用于指定讀取每一行時,一次最多讀取的字符(字節)數。

讀取大文件的正確姿勢

# 打開文件
file = open("README")
while True:
  # 讀取一行內容
  text = file.readline()
  # 判斷是否讀到內容
  if not text:
    break
  # 每讀取一行的末尾已經有了一個 `\n`
  print(text, end="")
# 關閉文件
file.close()

示例:

小文件復制

# 1. 打開文件
file_read = open("README")
file_write = open("README[復件]", "w")

# 2. 讀取并寫入文件
text = file_read.read()
file_write.write(text)

# 3. 關閉文件
file_read.close()
file_write.close()

大文件復制

# 1. 打開文件
file_read = open("README")
file_write = open("README[復件]", "w")

# 2. 讀取并寫入文件
while True:
  # 每次讀取一行
  text = file_read.readline()

  # 判斷是否讀取到內容
  if not text:
    break

  file_write.write(text)

# 3. 關閉文件
file_read.close()
file_write.close()

對于按行來讀取文件,還有一個 readlines() 函數。

readlines() 函數用于讀取文件中的所有行,它和調用不指定 size 參數的 read() 函數類似,只不過該函數返回是一個字符串列表,其中每個元素為文件中的一行內容。

和 readline() 函數一樣,readlines() 函數在讀取每一行時,會連同行尾的換行符一塊讀取。

5、文件指針

文件指針可以理解為一個標記,它標記從哪個位置開始讀取數據。

第一次打開文件時,通常文件指針會指向文件的開始位置,當執行了 read 方法后,文件指針默認情況下會移動到讀取內容的末尾。

如果執行了一次 read 方法,讀取了所有內容,那么再次調用 read 方法,還能夠獲得到內容嗎?

答案是不能,第一次讀取之后,文件指針移動到了文件末尾,再次調用不會讀取到任何的內容。

# 首先在 README 文件中寫了8個1
# 1. 打開 - 文件名需要注意大小寫
file = open("README")
# 2. 讀取
text = file.read()
print(text)
text = file.read()
print("-" * 10)
print(text)
# 3. 關閉
file.close()
#1111111
#----------
#

6、向文件中寫入數據

Python 中的文件對象提供了 write() 函數,可以向文件中寫入指定內容。該函數的語法格式如下:

file.write(string)
在寫入文件完成后,一定要調用 close() 函數將打開的文件關閉,否則寫入的內容不會保存到文件中。

這是因為,當我們在寫入文件內容時,操作系統不會立刻把數據寫入磁盤,而是先緩存起來,只有調用 close() 函數時,操作系統才會保證把沒有寫入的數據全部寫入磁盤文件中。

寫入文件示例:

# 打開文件
f = open("README", "w")

f.write("hello python!\n")
f.write("今天天氣真好")

# 關閉文件
f.close()

如果向文件寫入數據后,不想馬上關閉文件,也可以調用文件對象提供的 flush() 函數,它可以實現將緩沖區的數據寫入文件中。

f = open("a.txt", 'w')
f.write("寫入一行新數據")
f.flush()

三、文件/目錄的常用管理操作

在終端 / 文件瀏覽器中可以執行常規的文件 / 目錄管理操作,例如:創建、重命名、刪除、改變路徑、查看目錄內容等等。

在 Python 中,如果希望通過程序實現上述功能,需要導入 os 模塊。

1、文件操作

方法名說明示例
rename重命名文件os.rename(源文件名, 目標文件名)
remove刪除文件os.remove(文件名)

2、目錄操作

方法名說明示例
listdir目錄列表os.listdir(目錄名)
mkdir創建目錄os.mkdir(目錄名)
rmdir刪除目錄os.rmdir(目錄名)
getcwd獲取當前目錄os.getcwd()
chdir修改工作目錄os.chdir(目標目錄)

文件或者目錄的操作都支持相對路徑和絕對路徑。

關于Python實現操作文件的方法教程就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

容城县| 山阳县| 舒城县| 郓城县| 岑巩县| 福安市| 肃南| 弥勒县| 兰溪市| 苏尼特右旗| 平武县| 隆化县| 加查县| 偏关县| 石首市| 城口县| 景泰县| 洛阳市| 汤阴县| 桑植县| 师宗县| 类乌齐县| 海晏县| 任丘市| 衡水市| 军事| 天柱县| 巫溪县| 昌邑市| 南雄市| 建瓯市| 望都县| 罗江县| 新晃| 河南省| 兴安盟| 福泉市| 长岛县| 互助| 章丘市| 鲁山县|