Python基礎(chǔ)之文件處理(二)

Python基礎(chǔ)文件處理

python系列文檔都是基于python3

一绰筛、字符編碼
  1. 在python2默認(rèn)編碼是ASCII, python3里默認(rèn)是utf-8;

  2. unicode分為 utf-32(占4個(gè)字節(jié)),utf-16(占兩個(gè)字節(jié)),utf-8(占1-4個(gè)字節(jié))敞曹, so utf-8就是unicode;

  3. 在py3中encode,在轉(zhuǎn)碼的同時(shí)還會(huì)把string 變成bytes類型,decode在解碼的同時(shí)還會(huì)把bytes變回string;

  4. 內(nèi)存固定使用Unicode編碼殊者,硬盤的編碼可以修改(即可以修改的軟件編碼);

  5. 使用什么編碼往硬盤存拍顷,就用什么編碼去讀;

  6. 程序運(yùn)行分兩個(gè)階段:
      - 從硬盤讀到內(nèi)存
      - python解釋器運(yùn)行讀到內(nèi)存里的代碼

  7. 針對(duì).py文件,python與nodpad++\vim的區(qū)別是多了運(yùn)行已經(jīng)讀到內(nèi)存里的代碼.

二坪它、文件處理
  • open函數(shù)操作
    • 第一個(gè)參數(shù):文件名路徑和名稱
    • 第二個(gè)參數(shù):mode,文件打開(kāi)的方式
f = open('filename', 'mode')
f.close()
  • 模式
模式 操作 說(shuō)明
r 只讀(read-only) 默認(rèn)模式帝牡,以只讀方式打開(kāi)文件往毡,如果文件不存在就報(bào)錯(cuò),存在就正常讀取
w 寫(write) 如果文件不存在靶溜,新建文件然后寫入开瞭;如果存在,先清空文件內(nèi)容罩息,再寫入
a 追加(append) 如果文件不存在嗤详,新建文件然后寫入;如果存在瓷炮,在文件的最后追加寫入
x 創(chuàng)建 如果文件存在則報(bào)錯(cuò)葱色,如果不存在就新建文件,然后寫入內(nèi)容娘香,比w模式更安全
b 二進(jìn)制方式 binary方式苍狰,二進(jìn)制寫入;比如rb烘绽、wb淋昭、ab,以bytes類型操作數(shù)據(jù)
+ 讀寫 可讀又可寫雙模式安接;比如r+翔忽、w+、a+
#r,讀模式盏檐,open命令默認(rèn)是讀模式
f = open('testfile','r',encoding='utf-8')
print(f.read())

#w,寫模式呀打,如果沒(méi)有文件會(huì)創(chuàng)建
f = open('testfile','w',encoding='utf-8')
f.write('人生苦短,我學(xué)python\n')
f.close()

#a,追加模式
f = open('testfile','a',encoding='utf-8')
f.write('keep keep !\n')
f.close()

#r+,讀寫 可讀糯笙,追加內(nèi)容到最后
f = open('testfile','r+',encoding='utf-8')
f.readline()
f.write('devops\n')

#w+,寫讀  新建文件,寫入再讀取
f = open('testfile','w+',encoding='utf-8')
f.readline()
f.write('devops2\n')

# a+,追加讀 清空源文件撩银,再添加给涕,然后讀取
f = open('testfile','w+',encoding='utf-8')
f.readline()
f.write('devops3\n')

#刪除,打開(kāi)一個(gè)文件寫入空即刪除
f = open('testfile','r+',encoding='utf-8')
f.readline()
f.write('')
  • 文件處理方法
f = open('testfile','w+',encoding='utf-8')
f.close()
f.closed    #判斷操作的文件是否關(guān)閉
f.encoding  #打印文件的編碼格式
f.fileno()  #返回操作系統(tǒng)接口文件索引<網(wǎng)絡(luò)編程,I/O復(fù)用>
f.flush()   #刷新操作
f.isatty()  #判斷打開(kāi)的文件是否是終端文件
f.name      #打印文件名
f.newlines  #未讀取到行分隔符時(shí)為 None,只有一種行分隔符時(shí)為一個(gè)字符串,當(dāng)文件有多種類型的行結(jié)束符時(shí),則為一個(gè)包含所有當(dāng)前所遇到的行結(jié)束符的列表
f.readable()    #同isatty類似
f.seek()    #移動(dòng)光標(biāo)够庙,到固定位置返回此位置以后的內(nèi)容(按照字符移)
f.tell()    #打印光標(biāo)所在位置的索引
f.truncate()    #截?cái)喙вΓ浜蟬eek,括號(hào)內(nèi)指定保留字符數(shù)量耘眨,從頭開(kāi)始切
f.writelines()  #寫列表到文件
  • with語(yǔ)句
    • with語(yǔ)句是一種上下文管理協(xié)議技術(shù)(ContextManagemenProtocal)
    • 自動(dòng)判斷文件的作用域昼榛,自動(dòng)關(guān)閉已打開(kāi)且不在使用的文件句柄
    #readline函數(shù),一行一行讀取
    with open(r'test.txt','r',encoding='utf-8') as f:
      strline = f.readline()
      while strline:
          print(strline)
          strline = f.readline()
    
    with open(r'test.txt','r',encoding='utf-8') as f:
      #以打開(kāi)的文件f作為參數(shù)剔难,創(chuàng)建列表
      l = list(f)
      #打印出列表內(nèi)容
      for i in l:
          print(i)
    
    #read函數(shù)胆屿,是按照字符讀取文件內(nèi)容;默認(rèn)讀取所有
    with open('test.txt', 'r', encoding='utf-8') as f:
      strchar = f.read()
      print(strchar)
    
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末偶宫,一起剝皮案震驚了整個(gè)濱河市非迹,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌纯趋,老刑警劉巖憎兽,帶你破解...
    沈念sama閱讀 216,544評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異吵冒,居然都是意外死亡纯命,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,430評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門痹栖,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)亿汞,“玉大人,你說(shuō)我怎么就攤上這事结耀×粢梗” “怎么了?”我有些...
    開(kāi)封第一講書人閱讀 162,764評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵图甜,是天一觀的道長(zhǎng)碍粥。 經(jīng)常有香客問(wèn)我,道長(zhǎng)黑毅,這世上最難降的妖魔是什么嚼摩? 我笑而不...
    開(kāi)封第一講書人閱讀 58,193評(píng)論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮矿瘦,結(jié)果婚禮上枕面,老公的妹妹穿的比我還像新娘。我一直安慰自己缚去,他們只是感情好潮秘,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,216評(píng)論 6 388
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著易结,像睡著了一般枕荞。 火紅的嫁衣襯著肌膚如雪柜候。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書人閱讀 51,182評(píng)論 1 299
  • 那天躏精,我揣著相機(jī)與錄音渣刷,去河邊找鬼。 笑死矗烛,一個(gè)胖子當(dāng)著我的面吹牛辅柴,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播瞭吃,決...
    沈念sama閱讀 40,063評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼碌嘀,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了虱而?” 一聲冷哼從身側(cè)響起筏餐,我...
    開(kāi)封第一講書人閱讀 38,917評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎牡拇,沒(méi)想到半個(gè)月后魁瞪,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,329評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡惠呼,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,543評(píng)論 2 332
  • 正文 我和宋清朗相戀三年导俘,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片剔蹋。...
    茶點(diǎn)故事閱讀 39,722評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡旅薄,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出泣崩,到底是詐尸還是另有隱情少梁,我是刑警寧澤,帶...
    沈念sama閱讀 35,425評(píng)論 5 343
  • 正文 年R本政府宣布矫付,位于F島的核電站凯沪,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏买优。R本人自食惡果不足惜妨马,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,019評(píng)論 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望杀赢。 院中可真熱鬧烘跺,春花似錦、人聲如沸脂崔。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 31,671評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)砌左。三九已至娇钱,卻和暖如春伤柄,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背文搂。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 32,825評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留秤朗,地道東北人煤蹭。 一個(gè)月前我還...
    沈念sama閱讀 47,729評(píng)論 2 368
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像取视,于是被迫代替她去往敵國(guó)和親硝皂。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,614評(píng)論 2 353

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