Python檔案操作

2022-09-15 13:51:19 字數 3279 閱讀 6414

1.檔案路徑:例如:d:\******(絕對路徑);'檔名'(相對路徑在同資料夾下直接開啟)

2.編碼方式:例如:utf-8,gbk.....

3.操作方式:例如:唯讀,只寫,追加,讀寫,寫讀.....

open(file, mode='r', buffering=none, encoding=none, errors=none, newline=none, closefd=true);#open() 函式用於開啟乙個檔案,建立乙個 file 物件,相關的方法才可以呼叫它進行讀寫

開啟檔案簡單三部:(唯讀)

1.'物件(例如f)'=open('檔案路徑',mode='',encoding=''(二進位制寫入或讀放到操作中))#'物件及變數'

2.'變數(例如k)'=f.read();

3.print('k'),f.close()。

高階開啟:

with open('檔案路徑',mode='',encoding='')#'物件及變數'as'物件'(可以多開不需要手動關閉):

ps:如果要讀原檔案使用 for i in 迴圈讀

補充 with 其他:

with obj物件

__enter__(self) # 實際是走物件中的 __enter__方法 進入後

執行 with obj: 後其他內容

__exit__(self,exc_type,exc_val,exc_tb) # 最後走__exit__退出

模式       描述

r        ***以唯讀方式開啟檔案。檔案的指標將會放在檔案的開頭。這是預設模式。

rb        ***以二進位制格式(bytes)開啟乙個檔案用於唯讀。檔案指標將會放在檔案的開頭。這是預設模式。一般用於非文字檔案如等。

r+        ***開啟乙個檔案用於讀寫。檔案指標將會放在檔案的開頭。

rb+         ***以二進位制格式開啟乙個檔案用於讀寫。檔案指標將會放在檔案的開頭。一般用於非文字檔案如等。

w         ***開啟乙個檔案只用於寫入。如果該檔案已存在則開啟檔案,並從開頭開始編輯,即原有內容會被刪除。如果該檔案不存在,建立新檔案。

wb       ***以二進位制格式(bytes)開啟乙個檔案只用於寫入。如果該檔案已存在則開啟檔案,並從開頭開始編輯,即原有內容會被刪除。如果該檔案不存在,建立新檔案。一般用於非文字檔案如等。(f.write('內容').encode('你寫檔案的編碼方式')只有在二進位制mode下需要寫,open中不需要寫encoding)

w+       ***開啟乙個檔案用於讀寫。如果該檔案已存在則開啟檔案,並從開頭開始編輯,即原有內容會被刪除。如果該檔案不存在,建立新檔案。

wb+       以二進位制格式開啟乙個檔案用於讀寫。如果該檔案已存在則開啟檔案,並從開頭開始編輯,即原有內容會被刪除。如果該檔案不存在,建立新檔案。一般用於非文字檔案如等。

a        ***開啟乙個檔案用於追加。如果該檔案已存在,檔案指標將會放在檔案的結尾。也就是說,新的內容將會被寫入到已有內容之後。如果該檔案不存在,建立新檔案進行寫入。

ab        ***以二進位制格式(bytes)開啟乙個檔案用於追加。如果該檔案已存在,檔案指標將會放在檔案的結尾。也就是說,新的內容將會被寫入到已有內容之後。如果該檔案不存在,建立新檔案進行寫入。

a+       開啟乙個檔案用於讀寫。如果該檔案已存在,檔案指標將會放在檔案的結尾。檔案開啟時會是追加模式。如果該檔案不存在,建立新檔案用於讀寫。

ab+       以二進位制格式開啟乙個檔案用於追加。如果該檔案已存在,檔案指標將會放在檔案的結尾。如果該檔案不存在,建立新檔案用於讀寫。

屬性(這裡的file值得是控制代碼)         描述

file.closed                返回true如果檔案已被關閉,否則返回false。

file.mode                  返回被開啟檔案的訪問模式。

file.name                  返回檔案的名稱。

file.softspace                如果用print輸出後,必須跟乙個空格符,則返回false。否則返回true;

*****file.seek()               ********調游標;是按照位元組去定游標的位置(可以選擇游標位元組);

# seek(0,0) 開頭 seek(0,1) 當前位置 seek(0,2) 移動到末尾 # 0索引代表移動位置,1索引代表行狀態

*****file.read()              ********讀檔案內容,讀出來的都是字元;(可以選擇閱讀符);****"一次性讀*"

*****file.readable()            ********判斷檔案是否可讀;

*****file.readline()             ********一行一行讀;*****"不知道在哪結束;bytes按照位元組讀沒有行的概念"

*****file.readlines()             ********每一行當成列表中的乙個元素,然後新增到list中,可以使用迴圈列印出來;****"一次性讀*"

*****file.write()               ********寫檔案;

*****file.writeable()             ********判斷檔案是否可寫;

******for迴圈讀              ********for i in file()

*****file.truncate()             ********用於截斷檔案,如果指定了可選引數 size,則表示截斷檔案為 size 個字元。如果沒有指定 size,則從當前位置起截斷;截斷之後 size 後面的所有字元被刪除.

*****file.tell()                 ********查詢到游標目前的位置;

*****file.close()             ********關閉檔案;

*****file.flush()             ********強制儲存;

補充: 關於修改檔案的方法

讀乙個,寫乙個,刪除,重新命名(兩個檔案替換)

import os

os.remove('檔名') 刪除檔案

os.rename('檔名','新檔名') 重新命名檔案

深淺拷貝

" = " 棧空間的記憶體位址的賦值

淺拷貝: 只拷貝第一層內容

# 一定會建立乙個物件,內部構造和原來的物件一模一樣,原來的物件中的記憶體指向和新物件的指向是一致的

深拷貝: 全部複製乙份

# 一定會建立乙個物件,內部構造和原來的一樣,但是位址的指向不一樣

python 檔案操作

簡明 python 教程 中的例子,python 執行出錯,用open代替file 可以執行。poem programming is fun when the work is done if you wanna make your work also fun use python f open e ...

python檔案操作

1,將乙個路徑名分解為目錄名和檔名兩部分 a,b os.path.split c 123 456 test.txt print a print b 顯示 c 123 456 test.txt 2,分解檔名的副檔名 a,b os.path.splitext c 123 456 test.txt pri...

Python 檔案操作

1.開啟檔案 如下 f open d test.txt w 說明 第乙個引數是檔名稱,包括路徑 第二個引數是開啟的模式mode r 唯讀 預設。如果檔案不存在,則丟擲錯誤 w 只寫 如果檔案 不存在,則自動建立檔案 a 附加到檔案末尾 r 讀寫 如果需要以二進位制方式開啟檔案,需要在mode後面加上...