Python --- 文件的使用

筆記主要由來于 慕課網(wǎng) Python 語言程序設(shè)計

1.文件的理解
2.文件的打開關(guān)閉
3.文件內(nèi)容的讀取

  1. 數(shù)據(jù)的文件寫入

1.文件的理解

文件是數(shù)據(jù)的抽象和集合

  • 文件是存儲在輔助存儲器上的數(shù)據(jù)序列
  • 文件是數(shù)據(jù)存儲的一種形式
  • 文件展現(xiàn)形態(tài):文本文件和二進制文件

文本文件 vs. 二進制文件

  • 文本文件和二進制文件只是文件的展示方式
  • 本質(zhì)上帽芽,所有的文件都是二進制形式存儲
  • 形式上矫废,所有文件采用兩種方式展示
1.1文本文件

文件是數(shù)據(jù)的抽象和集合

  • 由單一特定編碼組成的文件嫉晶,如 UTF-8編碼
  • 由于存在編碼常挚,也被看成是存儲這的長字符串
  • 適用于例如:.txt文件、.py文件
1.2二進制文件
  • 直接由比特0和1組成,沒有統(tǒng)一字符編碼
  • 一般存在二進制0和1的組織結(jié)構(gòu)盾剩,即文件格式
  • 適用于例如:.png文件雷激、 .avi文件等

2.文件的打開關(guān)閉

文件處理的步驟:打開---操作---關(guān)閉

2.1文件的打開
<變量名> = open(<文件名>,<打開模式>)
變量名:文件句柄(文件抽象變量)
文件名:文件路徑和名稱(源文件用目錄可以省略)
打開模式:文本 or 二進制     讀信息 or 寫信息
文件路徑

<變量名> = open(<文件名>,<打開模式>)

文件位置:
        D:\PythonPractice\.idea\Practice\f.txt
文件名:(源文件同目錄可省略路徑) 
    絕對路徑
        "D:\\PythonPractice\\.idea\\Practice\\f.txt"
     或 "D:/PythonPractice/.idea/Practice/f.txt"
    相對路徑:(打開的文件與當前程序之間的路徑)
      若當前的程序存儲在D盤根目錄下
        "./PythonPractice/.idea/Practice/f.txt"
      打開文件和當前程序在相同目錄下
        "f.txt"
2.2打開模式
'r'  只讀模式替蔬,默認值告私,如果文件不存在,則返回FileNotFoundError(使用try   expect 捕捉處理)
'w'  覆蓋模式承桥,文件不存在則創(chuàng)建文件驻粟,存在則完全覆蓋
'x'  創(chuàng)建寫模式,文件不存在則創(chuàng)建,存在則返回FilExistssError
'a'  追加寫模式,文件不存在則創(chuàng)建咱筛,存在則在文件最后追加內(nèi)容眉踱,不會更改文件之前內(nèi)容

'b'  二進制文件模式
't'  文本文件,默認值

'+'  與 r/w/x/a 一同使用句灌,在原功能基礎(chǔ)上增加同時讀寫功能
f = open("f.txt")        - 文本形式、只讀模式、默認值
f = open("f.txt", "rt")  - 文本形式沃饶、只讀模式、通默認值
f = open("f.txt", "w")   - 文本形式轻黑、覆蓋寫模式
f = open("f.txt", "a+")  - 文本形式糊肤、追加寫模式 + 讀文件 
f = open("f.txt", "x")   - 文本形式、創(chuàng)建寫模式 
f = open("f.txt", "b")   - 二進制形式氓鄙、只讀模式 
f = open("f.txt", "wb")  - 二進制模式馆揉、覆蓋寫模式
2.3文件的關(guān)閉
<文件名> .colse()
若不寫此句話,程序執(zhí)行時此文件處于打開狀態(tài)抖拦,程序退出時python解釋器會關(guān)閉此文件

3.文件內(nèi)容的讀取

<f>.read(size = -1)      讀取全部內(nèi)容升酣,如果給出參數(shù),讀入前size長度
<f>.readline(size= -1)   讀入一行內(nèi)容态罪,如果給出參數(shù)拗踢,讀入改行前size長度
<f>.readlines(hint= -1)  讀入文件所有行,以每行為元素形成列表向臀,如果給出參數(shù)巢墅,讀入前hint行
>>> tf = open("D:/PythonPractice/.idea/Practice/f.txt","rt")
>>> a = tf.read()
>>> print(a)
中國是一個偉大的國家!
世界和平券膀!

>>> tf = open("D:/PythonPractice/.idea/Practice/f.txt","rt")
>>> s = tf.read(2)
>>> print(s)
中國


>>> tf = open("D:/PythonPractice/.idea/Practice/f.txt","rt")
>>> a = tf.readline()
>>> print(a)
中國是一個偉大的國家君纫!

>>> tf = open("D:/PythonPractice/.idea/Practice/f.txt","rt")
>>> s1 = tf.readline(5)
>>> print(s1)
中國是一個


>>> f = open("D:/PythonPractice/.idea/Practice/f.txt","rt")
>>> c = tf.readlines()
>>> print(c)
['偉大的國家!\n', '世界和平芹彬!']

>>> f = open("D:/PythonPractice/.idea/Practice/f.txt","rt")
>>> s2 = f.readlines(2)
>>> print(s2)
['中國是一個偉大的國家蓄髓!\n']


3.1遍歷全體文本
# 遍歷全文本:方法一
fname = input("請輸入要打開的文件名稱:")
fo = open(fname, "r")
txt = fo.read()
# 對文本txt進行處理
fo.close()
                  # 一次讀入,統(tǒng)一處理
                  # 弊端:大文件舒帮,一次讀入內(nèi)存会喝,浪費時間資源

# 遍歷全文本:方法一
fname = input("請輸入要打開的文件名稱:")
fo = open(fname, "r")
txt = fo.read(2)
while txt != "":
    # 對txt進行處理
    txt = fo.read(2)
fo.close()
                # 按數(shù)量讀入陡叠,分階段,逐步處理

3.2逐行遍歷文件
# 逐行遍歷文件 :方法一
fname = input("請輸入要打開的文件名稱:")
fo = open(fname,"r")
for line in fo.readlines():
    print(line)
fo.close()
                # 一次讀入肢执,分行處理

# 逐行遍歷文件 :方法二
fname = input("請輸入要打開的文件名稱:")
fo = open(fname,"r")
for line in fo:
    print(line)
fo.close()
                # 分行讀入枉阵,逐步處理

4. 數(shù)據(jù)的文件寫入

<f>.write(s)           向文件寫入一個字符串或字節(jié)流
<f>.writdlines(lines)  將一個元素為字符串的列表寫入文件
<f>.seek(offset)       改變當前文件操作指針的位置,
                         offset:0 文件開頭
                                 1 當前位置
                                 2 文件結(jié)尾
fo = open("output.txt","w+")
ls = ["中國","法國","美國"]
fo.writelines(ls)
fo.seek(0)
for line in fo :
    print(line)
fo.close()

中國法國美國
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末预茄,一起剝皮案震驚了整個濱河市兴溜,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌耻陕,老刑警劉巖拙徽,帶你破解...
    沈念sama閱讀 219,270評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異诗宣,居然都是意外死亡膘怕,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,489評論 3 395
  • 文/潘曉璐 我一進店門召庞,熙熙樓的掌柜王于貴愁眉苦臉地迎上來岛心,“玉大人,你說我怎么就攤上這事裁眯○睦妫” “怎么了?”我有些...
    開封第一講書人閱讀 165,630評論 0 356
  • 文/不壞的土叔 我叫張陵穿稳,是天一觀的道長存皂。 經(jīng)常有香客問我,道長逢艘,這世上最難降的妖魔是什么旦袋? 我笑而不...
    開封第一講書人閱讀 58,906評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮它改,結(jié)果婚禮上疤孕,老公的妹妹穿的比我還像新娘。我一直安慰自己央拖,他們只是感情好祭阀,可當我...
    茶點故事閱讀 67,928評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著鲜戒,像睡著了一般专控。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上遏餐,一...
    開封第一講書人閱讀 51,718評論 1 305
  • 那天伦腐,我揣著相機與錄音,去河邊找鬼失都。 笑死柏蘑,一個胖子當著我的面吹牛幸冻,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播咳焚,決...
    沈念sama閱讀 40,442評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼洽损,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了黔攒?” 一聲冷哼從身側(cè)響起趁啸,我...
    開封第一講書人閱讀 39,345評論 0 276
  • 序言:老撾萬榮一對情侶失蹤强缘,失蹤者是張志新(化名)和其女友劉穎督惰,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體旅掂,經(jīng)...
    沈念sama閱讀 45,802評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡赏胚,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,984評論 3 337
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了商虐。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片觉阅。...
    茶點故事閱讀 40,117評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖秘车,靈堂內(nèi)的尸體忽然破棺而出典勇,到底是詐尸還是另有隱情,我是刑警寧澤叮趴,帶...
    沈念sama閱讀 35,810評論 5 346
  • 正文 年R本政府宣布割笙,位于F島的核電站,受9級特大地震影響眯亦,放射性物質(zhì)發(fā)生泄漏伤溉。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,462評論 3 331
  • 文/蒙蒙 一妻率、第九天 我趴在偏房一處隱蔽的房頂上張望乱顾。 院中可真熱鬧,春花似錦宫静、人聲如沸走净。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,011評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽伏伯。三九已至,卻和暖如春扭粱,著一層夾襖步出監(jiān)牢的瞬間舵鳞,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,139評論 1 272
  • 我被黑心中介騙來泰國打工琢蛤, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留蜓堕,地道東北人抛虏。 一個月前我還...
    沈念sama閱讀 48,377評論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像套才,于是被迫代替她去往敵國和親迂猴。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,060評論 2 355

推薦閱讀更多精彩內(nèi)容