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後面加上...