Python File 介紹

Open() 方法


Python open() 方法用于打開一個文件,并返回文件對象,在對文件進行處理過程都需要使用到這個函數,如果該文件無法被打開,會拋出 OSError。

注意:使用 open() 方法一定要保證關閉文件對象,即調用 close() 方法。

open() 函數常用形式是接收兩個參數:文件名(file)和模式(mode)。

open(file, mode='r')

完整的語法格式為:

open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)

參數說明:

file            必需,文件路徑(相對或者絕對路徑)。
mode            可選,文件打開模式
buffering       設置緩沖
encoding        一般使用utf8
errors          報錯級別
newline ? ?     區分換行符
closefd ? ?     傳入的file參數類型
opener 

mode 參數有:?

t? ? ?文本模式 (默認)。
x? ? ?寫模式,新建一個文件,如果該文件已存在則會報錯。
b? ? ?二進制模式。
+? ? ?打開一個文件進行更新(可讀可寫)。
U? ? ?通用換行模式(不推薦)。
r? ? ? 以只讀方式打開文件。文件的指針將會放在文件的開頭。這是默認模式。
rb?? ?以二進制格式打開一個文件用于只讀。文件指針將會放在文件的開頭。這是默認模式。一般用于非文本文件如圖片? 等。
r+?? ?打開一個文件用于讀寫。文件指針將會放在文件的開頭。
rb+?? 以二進制格式打開一個文件用于讀寫。文件指針將會放在文件的開頭。一般用于非文本文件如圖片等。
w?? ? 打開一個文件只用于寫入。如果該文件已存在則打開文件,并從開頭開始編輯,即原有內容會被刪除。如果該文件不存在,創建新文件。
wb?? ?以二進制格式打開一個文件只用于寫入。如果該文件已存在則打開文件,并從開頭開始編輯,即原有內容會被刪除。如果該文件不存在,創建新文件。一般用于非文本文件如圖片等。
w+?? ?打開一個文件用于讀寫。如果該文件已存在則打開文件,并從開頭開始編輯,即原有內容會被刪除。如果該文件不存在,創建新文件。
wb+?? 以二進制格式打開一個文件用于讀寫。如果該文件已存在則打開文件,并從開頭開始編輯,即原有內容會被刪除。如果該文件不存在,創建新文件。一般用于非文本文件如圖片等。
a?? ? 打開一個文件用于追加。如果該文件已存在,文件指針將會放在文件的結尾。也就是說,新的內容將會被寫入到已有內容之后。如果該文件不存在,創建新文件進行寫入。
ab?? ?以二進制格式打開一個文件用于追加。如果該文件已存在,文件指針將會放在文件的結尾。也就是說,新的內容將會被寫入到已有內容之后。如果該文件不存在,創建新文件進行寫入。
a+?? ?打開一個文件用于讀寫。如果該文件已存在,文件指針將會放在文件的結尾。文件打開時會是追加模式。如果該文件不存在,創建新文件用于讀寫。
ab+?? 以二進制格式打開一個文件用于追加。如果該文件已存在,文件指針將會放在文件的結尾。如果該文件不存在,創建新文件用于讀寫。

默認為文本模式,如果要以二進制模式打開,加上 b 。

?

File 對象


file 對象使用 open 函數來創建,下表列出了 file 對象常用的函數:

file = open(r'D:\test.txt', 'r')

file.close()

關閉文件。關閉后文件不能再進行讀寫操作。

?
file.flush()

刷新文件內部緩沖,直接把內部緩沖區的數據立刻寫入文件, 而不是被動的等待輸出緩沖區寫入。

??? ?
file.fileno()

返回一個整型的文件描述符(file descriptor FD 整型), 可以用在如os模塊的read方法等一些底層操作上。

??? ?
file.isatty()

如果文件連接到一個終端設備返回 True,否則返回 False。

??? ?
file.next()

返回文件下一行。

??? ?
file.read([size])

從文件讀取指定的字節數,如果未給定或為負則讀取所有。

??? ?
file.readline([size])

讀取整行,包括 "\n" 字符。

??? ?
file.readlines([sizeint])

讀取所有行并返回列表,若給定sizeint>0,則是設置一次讀多少字節,這是為了減輕讀取壓力。

??? ?
file.seek(offset[, whence])

設置文件當前位置

??? ?
file.tell()

返回文件當前位置。

??? ?
file.truncate([size])

截取文件,截取的字節通過size指定,默認為當前文件位置。

??? ?
file.write(str)

將字符串寫入文件,返回的是寫入的字符長度。

??? ?
file.writelines(sequence)

向文件寫入一個序列字符串列表,如果需要換行則要自己加入每行的換行符。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/285397.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/285397.shtml
英文地址,請注明出處:http://en.pswp.cn/news/285397.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

H5開發中常用的js方法

2019獨角獸企業重金招聘Python工程師標準>>> h5和app之間的webview交互 這是常用的交互方法之一,iOS可以使用WKWebView,安卓可以使用JsBridge,完成常見的交互效果。function webViewHandler(iosCallback, adrCallback) {if (getMobileOperatingSystem() …

【前端優化】

如何進行前端優化 (1) 減少http 請求次數:css spirit(多張小圖放一個大圖上,用定位選擇不同小圖),data uri(壓縮圖片大小), 圖片大小控制合適;網頁Gzip&#…

GPS RTK(銀河1)基準站架設、移動站設置完整操作流程

本文講解GPS RTK(銀河1)基站架設完整操作流程,包括相對坐標、點校正等操作。 文章目錄 一、架設基準站二、啟動基準站三、架設移動站四、設置移動站一、架設基準站 基準站一定要架設在視野比較開闊,周圍環境比較空曠的地方,地勢比較高的地方;避免架在高壓輸變電設備附近…

在.NET 6.0上使用Kestrel配置和自定義HTTPS

本章是《定制ASP NET 6.0框架系列文章》的第四篇。在本章,我們將學習ASP.NET Core的Kestrel配置和自定義HTTPS,好我們開始正文。在ASP.NET Core中,默認情況下HTTPS處于打開狀態,這個不是問題,我們無需禁用它。因為如果…

dom4j-2.1.1 jaxen-1.1.6 讀取xml數據源

<?xml version"1.0" encoding"UTF-8"?> <data><row><id>1</id><name>JackieChen</name></row><row><id>2</id><name>TomLee</name></row> </data> package…

Virtualbox安裝增強工具失敗

在安裝Virtualbox增強工具安裝時出現unable to find the sources of your current Linux kernel&#xff0c;安裝失敗&#xff0c;導致主機與虛擬機之間不能共享文件夾&#xff0c;不能復制粘貼&#xff0c;鼠標也不能直接移動到物理機&#xff0c;需要按快捷鍵才行。 解決辦法…

C語言試題118之求1到20的每個數的階層之和

?作者簡介:大家好我是碼莎拉蒂,CSDN博客專家?????? ??個人主頁:個人主頁 ??系列專欄:C語言試題200例 ??推薦一款模擬面試、刷題神器?? 點擊跳轉進入網站 1、題目 題目:求 1+2!+3!+…+20!的和 分析:此程序只是把累加變成了累乘。 2 、溫馨提示 想獲取更多…

吐血整理:C#順序、選擇、循環結構用法與案例,這一篇就夠了!

C#語言中用于結構化程序設計的三種基本結構是:順序結構、選擇結構、循環結構。本文詳細整理了以上三種結構的用法,案例。 文章目錄 4.1 順序結構4.1.1 賦值語句4.1.2 輸入語句4.1.3 輸出語句4.1.4 復合語句4.1.5 應用實例4.2 選擇結構4.2.1 if條件語句4.2.2 switch結構4.3 循…

java.lang.NoSuchFieldError: EMPTY_ORDERED_ITERATOR起因及解決辦法

java.lang.NoSuchFieldError: EMPTY_ORDERED_ITERATOR 最近這個錯誤遇到了好多次&#xff0c;不過都很輕松的解決了&#xff0c;問題的起因是多了一個collection包&#xff0c;如下圖 看到了&#xff0c;只要把其中的一個刪除掉&#xff0c;更新啟動Tomcat就行了。 本文轉自suc…

由ASP.NET Core根據路徑下載文件異常引發的探究

前言最近在開發新的項目&#xff0c;使用的是ASP.NET Core6.0版本的框架。由于項目中存在文件下載功能&#xff0c;沒有使用類似MinIO或OSS之類的分布式文件系統&#xff0c;而是下載本地文件&#xff0c;也就是根據本地文件路徑進行下載。這其中遇到了一個問題&#xff0c;是關…

[轉]EL函數、自定義EL函數、自定義標簽

EL函數 1、EL函數的作用&#xff1a;操作字符串 2、在JSP頁面中要引入EL函數庫 <% taglib prefix"fn" uri"http://java.sun.com/jsp/jstl/functions" %> 3、語法 ${ fn:方法名(參數) } 4、實例 <% page language"java" contentTyp…

XidianOJ 1019 自然數的秘密

題目描述 題意&#xff1a; 已知&#xff1a;N&#xff01;N*(N-1)*...*2*1 找到最小自然數 N, 使N!末尾有連續 M個零. 例如, 5! 的結尾包含1個零. 輸入 第一行輸入一個整數T,表示有T組測試數據。 對于每組測試數據&#xff0c;輸入一個整數M&#xff0c;表示包含M個零。&#…

C語言試題119之利用遞歸方法求 5的階層

?作者簡介:大家好我是碼莎拉蒂,CSDN博客專家?????? ??個人主頁:個人主頁 ??系列專欄:C語言試題200例 ??推薦一款模擬面試、刷題神器?? 點擊跳轉進入網站 1、題目 題目:利用遞歸方法求 5的階層 分析:遞歸公式:fn=fn_1*4的階層 2 、溫馨提示 想獲取更多C…

深入學習http協議(轉)

http://www.blogjava.net/zjusuyong/articles/304788.html轉載來的&#xff0c;沒看到原文地址。http協議學習系列1. 基礎概念篇1.1 介紹HTTP是Hyper Text Transfer Protocol&#xff08;超文本傳輸協議&#xff09;的縮寫。它的發展是萬維網協會&#xff08;World Wide Web Co…

【ArcGIS風暴】ArcGIS+CASS點云(.las)數據生成等高線方法案例精解

本文講解基于點云LAS數據,在ArcGIS+CASS平臺上生成等高線的方法。 擴展閱讀: 什么是點云?什么是Las數據集?一篇文章告訴你點云數據的奧秘 ArcGIS+CASS點云(.las)數據生成等高線方法案例精解 ArcGIS平臺上點云(.las)數據生成等高線方法案例精解 文章目錄 一、LAS轉多點二、…

CSS浮動屬性Float到底什么怎么回事,下面詳細解釋一下

float 是 css 的定位屬性。在傳統的印刷布局中&#xff0c;文本可以按照需要圍繞圖片。一般把這種方式稱為“文本環繞”。在網頁設計中&#xff0c;應用了CSS的float屬性的頁面元素就像在印刷布局里面的被文字包圍的圖片一樣。浮動的元素仍然是網頁流的一部分。這與使用絕對 定…

MAUI Developer Day in GCR

點擊藍字關注我們編輯&#xff1a;Alan Wang排版&#xff1a;Rani Sun活動介紹作為一個支持在單一代碼庫中開發能夠運行在 Android、iOS、macOS 和 Windows 等多平臺的應用程序的跨平臺框架&#xff0c;.NET MAUI &#xff08;多平臺應用程序用戶界面&#xff09;還在預覽版時就…

C語言試題126之請輸入星期幾的第一個字母來判斷一下是星期幾,如果第一個字母一樣,則繼續 判斷第二個字母。

?作者簡介:大家好我是碼莎拉蒂,CSDN博客專家?????? ??個人主頁:個人主頁 ??系列專欄:C語言試題200例 ??推薦一款模擬面試、刷題神器?? 點擊跳轉進入網站 1、題目 題目:請輸入星期幾的第一個字母來判斷一下是星期幾,如果第一個字母一樣,則繼續 判斷第二…

【ArcGIS風暴】ArcGIS點云抽稀(稀疏化LAS點)詳解案例教程

考慮對過采樣 LAS 數據(例如通過攝影測量方式獲得的點云以及多個疊加激光雷達掃描的返回值)使用稀疏化LAS點工具,以優化顯示性能和加速分析操作。 文章目錄 1. 創建las數據集2. 稀疏化LAS點適用版本:ArcGIS10.6以上。 1. 創建las數據集 擴展閱讀:ArcGIS10.6創建LAS數據集…