當前位置:首頁 » 編程語言 » pythonopen的路徑

pythonopen的路徑

發布時間: 2025-01-30 01:05:00

python文作操作函數open()

1.並非只能訪問文本文件
open可以訪問任何形式的文件,在訪問非文本格式文件(二進制文件)的時候,訪問模式通常加上『b』(即二進制模式:『rb』或『wb』),但並不必須,依情況而定
2.路徑是填寫在前面的filename參數處的
如你的例子,若要只讀這個文件,則是:
open('D:\\123.txt', 'r')
(由於\是轉義符,所以要將他再轉義,才能得到\符號本身)
若要寫入,則是:
open('D:\\123.txt', 'w')
以此類推
如果是不加路徑,只有一個文件名:
open('123.txt', 'r')
則會在python運行的當前目錄下尋找該文件名的文件

另:讀模式(r)必須保證文件存在,寫模式(w)至少要保證文件所在目錄存在(文件本身可以不存在)
如果不滿足,則系統會拋出一個IOError

Ⅱ Python內置函數(47)——open

Python內置函數open功能詳解

open函數用於打開文件並返回一個文件讀寫對象。如果文件無法打開,則會拋出一個OSError異常。

參數file可以是一個字元串或位元組對象,表示文件的相對路徑(當前工作目錄)或絕對路徑,也可以是文件描述符。使用文件描述符時,如果closefd為True(默認),則文件在對象關閉時會自動關閉;如果為False,則文件描述符不會關閉。

參數mode用於指定打開文件的模式。常見的模式如下:

默認模式'r':以只讀模式打開文本文件,確保文件存在。

'w':以只寫模式打開。若文件存在,則清空文件內容並重新創建;若文件不存在,則新建文件。寫入模式需要保證文件所在目錄存在,文件可不存在。

'a':以追加模式打開。若文件存在,則內容追加到文件末尾;若文件不存在,則新建文件。該模式下不能使用read*()方法。

模式'b'表示以二進制模式打開,'t'表示以文本模式打開,默認為文本模式。

組合模式如'r+'表示以文本讀寫模式打開,可寫入文件的任意位置;'w+'表示以文本讀寫模式打開,文件在打開前被清空。其他組合模式如'ab'、'wb'、'rb'等以此類推。

參數buffering用於設置緩沖策略,0表示關閉緩沖(僅在二進制模式下有效),1表示行緩沖(文本模式下有效),其他正整數表示固定大小的緩沖塊。

參數encoding用於指定文件編碼格式,僅在文本模式下有效。默認編碼由locale.getpreferredencoding()函數返回,但支持任何Python支持的文本編碼。

參數errors用於指定在讀寫文件時遇到錯誤時的處理級別。常見錯誤處理包括忽略錯誤、跳過錯誤、終止程序等。

參數newline用於控制文本模式下的換行符,可取值為None、'\n'、'\r'、''、'\r\n'。

參數closefd在傳入文件描述符時使用,若為False,則關閉文件描述符;若為True(默認),則不會關閉。

使用open函數時,首先需明確文件操作的模式、編碼等參數,以確保文件正確讀寫。函數返回的對象支持常見的文件讀寫操作,如read()、write()等。在實際應用中,合理配置open函數的參數可有效管理文件資源,避免資源浪費或數據丟失。

Ⅲ python文作操作函數open()

Python中的open()函數不僅適用於文本文件,還可以用於訪問任何形式的文件,包括二進制文件。在處理二進制文件時,通常需要指定二進制模式(即'rb'或'wb'),但這不是強制要求,具體取決於文件的使用情況。例如,如果你需要以只讀方式讀取一個二進制文件,可以使用如下代碼:open('D:\\123.txt', 'rb')。同樣地,若要寫入一個二進制文件,則代碼為:open('D:\\123.txt', 'wb')。

在指定文件路徑時,路徑名需要作為filename參數的一部分。例如,如果你想讀取位於D盤的文件123.txt,正確的代碼是:open('D:\\123.txt', 'r')。由於反斜杠在Python中是轉義字元,因此需要使用雙反斜杠(\\)來正確表示路徑中的每個反斜杠。

若不提供路徑,只給出文件名,例如:open('123.txt', 'r'),則open()函數會在Python運行時所在的當前目錄下查找名為123.txt的文件。在這種情況下,你需要確保當前目錄中確實存在該文件。

讀取模式('r')需要保證文件存在,而寫入模式('w')則至少需要保證文件所在的目錄存在,但文件本身可以不存在。如果目錄不存在,open()函數會拋出一個IOError異常,提示文件或目錄不存在。

值得注意的是,當使用讀取模式時,如果文件不存在,open()函數會拋出IOError。同樣地,使用寫入模式時,如果文件不存在,open()函數同樣會拋出IOError,除非文件所在目錄已經存在。

Ⅳ Python 文件操作

open(filename[,mode,encoding="編碼"]) :第一個參數文件名如果不加路徑,默認在該py文件目錄下(路徑舉例: E:/XXX或E:\xxx ),第二個是模式,默認為 'r' ——只讀,舉例: f = open('E:/abc.txt') ,如果要轉編碼並寫入模式:
f = open('E:/abc.txt','w',encoding='utf-8')
1. 模式

2. 方法
(1) close() : 關閉文件,因為文件寫入時是寫在內存,只有關閉時才寫入硬碟,所以寫完記得關閉
(2) read(size = -1) :讀取文件size個字元,不寫默認是-1,此時讀取所有內容(換行按 來表示,很不好看),並作為字元串返回,一定要注意 讀完以後文件指針將會指向末尾 ,所以下一次在用read方法時會發現讀取不出內容了,所以這個就要用seek移動指針或者關閉文件重新定義
(3) tell() :返回當前文件指針指向的位置
(4) seek(offset,from) :移動文件指針,代表從from參數開始偏移offset個位元組,0代表起始位置,1代表當前位置,2代表文件末尾
(5) readline() :按序列讀取一行內容,默認 為邊界
(6) write() :寫入內容,但必須要有寫入許可權才行,否則報錯,寫完會返回寫入的長度,例如: len1 = f.write('abc') ,此時len1就為3
(7) truncate() :刪除內容,把當前指針以後的內容全刪了,舉例:

註:
1.文件還可以轉化為 list 之類的,例如: list1 = list(f) ,此時文件內容的按 被隔開,然後可以用for語句讀取文件所有內容,舉例:

2.上面輸出文件內容方法相對低效,所以一般都直接用for輸出整個文件,舉例:

通過 fileno 函數,我們可以查看一個文件對應的文件描述符,對應的是程序中打開的文件序號,舉例:

可以看出python在啟動時會先啟動標准流的文件(文件描述符分別為:0/1/2),所以之後打開的文件就從3開始遞增,當釋放一個文件資源時,該描述符序號被釋放,之後打開的文件可以繼續使用該序號的文件描述符

python中的 print 的本質是通過 sys.stdout 來進行內容輸出,而 sys.stdout 的本質是一個"文件",相當於我們所有的輸入輸出的本質都是在對 sys.stdin / sys.stdout / sys.stderr 這些文件來進行讀寫操作,舉例:

open 函數不僅可以打開本地文件,也可以打開文件描述符,而該參數默認為 True ,代表 close 後會將對應的文件資源釋放,而對於一些文件描述符,我們只是希望 close 時將打開文件描述符的對象釋放,而不釋放對應的文件資源,那麼則可以設置 closefd=False ,舉例:

需要使用到 chardet 模塊,按二進制可讀打開文件,然後通過 detect() 方法查看,舉例:

所以就可以根據文件來設置編碼了:

有時候使用文件的編碼解碼也可能會出現無法解析的情況,例如兩種編碼混在同一個文件里的時候,此時可以設置 errors 參數為 ignore 來避免該問題,示例:

可用 os 模塊下的 chmod() 函數,具體參考: http://www.runoob.com/python/os-chmod.html

使用 os 模塊下的 remove() 函數可以實現刪除文件,舉例:

可以使用自帶的 zipfile 模塊來進行操作,舉例:

可以使用自帶的 tarfile 模塊來進行操作,舉例:

https://www.cnblogs.com/lotusto/p/5805543.html

熱點內容
域名解析了不能訪問 發布:2025-01-30 21:29:29 瀏覽:64
車輛頂配配置怎麼選 發布:2025-01-30 21:29:17 瀏覽:161
websocket上傳大文件 發布:2025-01-30 21:26:17 瀏覽:413
無法訪問目標主機linux 發布:2025-01-30 21:25:23 瀏覽:328
存儲介質滿 發布:2025-01-30 21:18:50 瀏覽:885
通過ip直接訪問網站 發布:2025-01-30 21:18:44 瀏覽:350
雙線伺服器的搭建 發布:2025-01-30 21:18:40 瀏覽:381
c語言迭代法求方程根 發布:2025-01-30 21:18:29 瀏覽:812
電腦無法連接錄屏伺服器 發布:2025-01-30 21:15:36 瀏覽:21
系統恢復選擇密碼是什麼 發布:2025-01-30 21:15:23 瀏覽:629