day3-文件操作之基本操作

一、文件的基本操作

文件內容:

Somehow, it seems the love I knew was always the most destructive kind
不知為何,我經歷的愛情總是最具毀滅性的的那種
Yesterday when I was young
昨日當我年少輕狂

?1、read()

當read()函數中傳入整數(int)參數,則讀取相應的字符數,如果不填寫,則默認讀取所有字符

f = open("yesterday2",'r',encoding="utf-8")
#默認讀取全部字符
print(f.read())
f.close()
#輸出
Somehow, it seems the love I knew was always the most destructive kind
不知為何,我經歷的愛情總是最具毀滅性的的那種
Yesterday when I was young
昨日當我年少輕狂f = open("yesterday2",'r',encoding="utf-8")
#只讀取10個字符
print(f.read(10))
f.close()
#輸出
Somehow, i

注:只有當文件有讀權限時,才可以操作這個函數

2、tell()

獲取文件句柄所在的指針的位置

f = open("yesterday2",'r',encoding="utf-8")
print(f.read(10))
#獲取指針位置
print(f.tell())
f.close()
#輸出
Somehow, i #讀取的內容
10 #指針位置

?3、seek()

設置文件句柄所在的指針位置

f = open("yesterday2",'r',encoding="utf-8")
print(f.read(10))
#設置之前的指針位置
print(f.tell())
f.seek(0)
#設置之后的指針位置
print(f.tell())
f.close()
#輸出
Somehow, i #讀取文件的內容
10 #設置之前的指針位置
0 #設置之后的指針位置

?4、encoding

打印文件的編碼

f = open("yesterday2",'r',encoding="utf-8")
print(f.encoding)
f.close()
#輸出
utf-8

?5、fileno()

返回文件句柄在內存中的編號

f = open("yesterday2",'r',encoding="utf-8")
print(f.fileno())
f.close()
#輸出
3

?6、name

返回文件名

f = open("yesterday2",'r',encoding="utf-8")
print(f.name)
f.close()
#輸出
yesterday2

?7、isatty()

判斷是否是一個終端設備(比如:打印機之類的)

f = open("yesterday2",'r',encoding="utf-8")
print(f.isatty())
f.close()
#輸出
False #表示不是一個終端設備

?8、seekable()

?不是所有的文件都可以移動光標,比如tty文件,可以移動的,返回True

f = open("yesterday2",'r',encoding="utf-8")
print(f.seekable())
f.close()
#輸出
True

?9、readable()

文件是否可讀

f = open("yesterday2",'r',encoding="utf-8")
print(f.readable())
f.close()
#輸出
True

?10、writeable()

文件是否可寫

f = open("yesterday2",'r',encoding="utf-8")
print(f.writable())
f.close()
#輸出
False #文件不可寫

?11、flush()

寫數據時,寫的數據不想存內存中緩存中,而是直接存到磁盤上,需要強制刷新

>>> f = open("yesterday2","w",encoding="utf-8")
#這時'hello word'在緩存中
>>> f.write("hello word")
10
#強刷到磁盤上
>>> f.flush()

?這個怎么實驗呢?在cmd命令行中,cd到你文件所在的路徑下,然后輸入python,在Python命令行中輸入上面代碼

①cd d:\PycharmProjects\pyhomework\day3下(因為我的被測文件在這個文件夾下)

②在這個目錄下輸入Python命令行,然后進行測試

③強制刷新之前

?④執行強刷命令之后

?

⑤強刷后文件中的內容變化

?

注:以寫的模式打開文件,寫完一行,默認它是寫到硬盤上去的,但是其實它不一定寫到硬盤上去了。當你剛寫完一行,如果此時斷電,有可能,你這行就沒有寫進去,因為這一樣還在內存的緩存中(內存中的緩存機制),所以你有不想存緩存,所以就要強制刷新。那一般在什么情況下用吶?比如:存錢

12、closed

判斷文件是否關閉

f = open("yesterday2","r",encoding="utf-8")
f.read()
print(f.closed)
#輸出
False

?13、truncate(截取字符的數)

截取文件中的字符串,打開文件模式一定是追加模式(a),不能是寫(w)和讀(r)模式

#沒有指針
f = open("yesterday2","a",encoding="utf-8")
f.truncate(10)
f.close()
#截取結果
Somehow, i#有指針
f = open("yesterday2","a",encoding="utf-8")
f.seek(5)
f.truncate(10)
f.close()
#截取結果
Somehow, i

?說明truncate截取文件中的字段,并不受指針(seek)所在位置影響。

14、write()

寫入文件內容

f = open("yesterday2","w",encoding="utf-8")
f.write("Somehow, it seems the love I knew was always the most destructive kind")
f.close()

?注:寫功能只有當打開文件模式是寫(w)或者追加(a)才可操作。

?

轉載于:https://www.cnblogs.com/zhangqigao/articles/6480191.html

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

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

相關文章

QT連接多種數據庫f方法及測試

QT提供了對多種數據庫的訪問支持,對SQL Server也可以通過ODBC來進行訪問。要想順利訪問SQL Server。 首先要保證以下幾點:1. QT編譯時已經編譯了QtSql2. 編譯了ODBC插件。可以通過 configure -plugin-sql-odbc來保證,也可以單獨編譯~/src/plu…

服務器如何實現電腦無線橋接,無線路由器WDS橋接成功副路由器下電腦無法上網怎么辦【解決方法】...

摘 要無線WDS橋接設置完成后,在副路由器管理面,運行狀態 無線狀態 中,WDS狀態顯示成功,但電腦通過副路由無法上網。該問題可能與主、副路由器的設置有關,如下圖所示: 解決辦法: 排查一&#xff…

spad 探測器_從光到光子—“單光子”探測器

光電探測器光電探測器是指在光輻射作用下將其非傳導電荷變為傳導電荷的一類器件。在電子學中,二極管是一種具有不對稱傳輸特性的雙端電子元件,在一個方向上對電流具有低(理想為零)電阻,在另一個方向上具有高(理想為無限)電阻。最常見的類型如…

天地圖專題五:在天地圖上繪制電子區域并保存數據

版權聲明:本文為博主原創文章,轉載請注明出處。 上一文章講了如何在天地圖上顯示坐標軌跡。 本文介紹如何在天地圖上繪制電子區域(電子范圍或電子柵欄),并且,我們要將我們繪制的電子區域的坐標數據保存到數…

Mysql中natural join和inner join的區別

假設有如下兩個表TableA,TableB TableA TableB Column1 Column2 Column1 Column3 1 2 1 3TableA的Column1列名和TableB的Column1列名相同。 SELECT * FROM TableA INNER JOIN TableB USING (Column1) SEL…

微信和支付寶的服務器在哪里,手機恢復出廠設置,里面支付寶與微信怎么辦?原來數據在這里...

當手機使用一段時間之后,因為硬件落后會出現卡頓、內存不足等情況,這個時候提高手機速度最直接的一個辦法就是恢復出廠設置,雖然不能從根源上解決問題,但是還是可以湊合個半年時間的。那么這個時候就出現一個問題,手機…

python線上編輯問題_python django - static文件處理與線上部署測試

static文件相關操作涉及:a. 文件位置與訪問路徑映射b. setting.py與static相關配置STATIC_URLSTATIC_ROOTSTATICFILES_DIRSc. html中對于static文件引用方式d. python manage.py collectstatic1. 開發環境-目錄結構2. setting.py 設置STATIC_URL /static/# STATIC_…

android arcgis 繪制圓_arcgis for android 定位 圓

不多說直接代碼 ,群里人共享的方法一: /*** 繪制圓,配合 cleargraphicLayer()清除** param center 圓心* param radius 半徑* param alpha 填充的透明度 0-100* param fillColor 填充的顏色*/public void DrawCircle(Point center, double radius, int a…

CreateSolidBrush

[聲明] WINGDIAPI HBRUSH WINAPI CreateSolidBrush(COLORREF color); [功能] 初始化一個指定顏色的畫刷。畫筆可以隨后被選為任何設備上下文的當前刷子。 [參數表] color 畫刷的顏色[返回值] Long,如函數執行成功,就返回指向新畫筆的一個句柄&#xff1b…

mysql insert 不需要日志_MySQL數據庫性能優化(1)「轉」

1、MySQL概述從本文開始我們將討論建立在塊存儲方案之上的關系型數據庫的性能優化方案和集群方案。關系型數據庫的選型將以創業公司、互聯網行業使用最廣泛的MySQL數據為目標,但是MySQL的安裝過程和基本使用方法等知識并不在我們討論的范圍內。后續幾篇文章我們首先…

javascript面試題以及對所涉及到的知識點的總結

前言 這幾天將js方面的知識系統的回顧了一遍,但是當嘗試去做一些面試題時覺得解決問題的能力以及效率還是有所欠缺,在這里特意記錄一下所做的面試題并總結所涉及到的相關知識點。 一、面試題、答案以及總結 1、截取字符串abcdefg的efg var str"abcd…

十代主板改win7_技嘉B460主板UEFI+GPT裝win7|10代CPU裝win7 Bios設置

隨著英特爾十代酷睿處理器的全面上市,針對主流用戶的B460平臺成為了大眾主要關注的目標。作為國際一線板卡品牌的技嘉科技針對十代酷睿的特點,推出了B460主板。這塊主板裝win7、win10都可以,但是在裝win7的過程中USB設備不能使用(本站支持最新的B460/Z490等新主板驅動),需要…

Java swing中的keyListener使用事例

最近在學習Java swing,寫了一個域內聊天室,實現用戶登錄ip,端口號之后,進入聊天窗口聊天: 通過菜單條增加了幾個功能,邊框,字體,顏色和文件傳輸。風格里的樣式都可以通過自己選擇來設置。 介紹以…

「前端」History API與瀏覽器歷史堆棧管理

本文由尚妝前端開發工程師欲休撰寫 本文發表于尚妝博客,歡迎訂閱! 移動端開發在某些場景中有著特殊需求,如為了提高用戶體驗和加快響應速度,常常在部分工程采用SPA架構。傳統的單頁應用基于url的hash值進行路由,這種實…

Andrew Ng機器學習(一):線性回歸

1.什么是線性回歸? 用線性關系去擬合輸入和輸出。 設輸入為x,則輸出yaxb。 對于多元的情況yb1a1x1a2x2...anxn。 用θ表示系數,可以寫作: 其中,x01。 2.線性回歸有什么用? 對于連續輸入和輸出的問題&#x…

c++虛析構函數

1.為什么基類的析構函數是虛函數&#xff1f; 在實現多態時&#xff0c;當用基類操作派生類&#xff0c;在析構時防止只析構基類而不析構派生類的狀況發生。 下面轉自網絡&#xff1a;源地址 http://blog.sina.com.cn/s/blog_7c773cc50100y9hz.html a.第一段代碼 #include<i…

ICMP(Internet Control Message Protocol)網際控制報文協議初識

ICMP是&#xff08;Internet Control Message Protocol&#xff09;Internet控制報文協議。它是TCP/IP協議族的一個子協議&#xff0c;用于在IP主機、路由器之間傳遞控制消息。控制消息是指網絡通不通、主機是否可達、路由是否可用等網絡本身的消息。這些控制消息雖然并不傳輸用…

Linux設置RSA密鑰登錄

一、怎么實現雙向免密登錄 前提 所有服務器/etc/ssh/sshd_config文件的以下三行未被注釋 RSAAuthentication yesPubkeyAuthentication yesAuthorizedKeysFile .ssh/authorized_keys舉例&#xff1a; 兩臺服務器&#xff1a;192.168.100.134 192.168.1.140免密碼登錄是分用戶的…

python面向對象__str__和__repr__方法

__str__方法 class Animal:def __init__(self,name,color):self.namenameself.colorcolordef __str__(self):resself.name的顏色是self.colorreturn res batAnimal(蝙蝠,黑色) print(蝙蝠的特征:%s % bat) # 蝙蝠的特征:蝙蝠的顏色是黑色 對象輸出或者打印就會執行__str__方法…

函數sprintf真好用

描述&#xff1a;C 庫函數 int sprintf(char *str, const char *format, ...) 發送格式化輸出到 str 所指向的字符串。 聲明&#xff1a; int sprintf(char *str, const char *format, ...) 參數&#xff1a; str -- 這是指向一個字符數組的指針&#xff0c;該數組存儲了 C 字符…