Python 的輸入輸出(二):文件基礎操作

Python自帶的文件讀取與輸出,來自 Cescfangs 的個人博客盛泡。

宇宙通用的open()

與其他很多語言一樣辜纲,Python操作文件的函數(shù)也是open():

>>> f=open('man.txt','w')
>>> f
<_io.TextIOWrapper name='man.txt' mode='w' encoding='cp936'>

第一個參數(shù)是文件兜粘,默認的是當前路徑,我們也可以自己絕對路徑洛二,第二個參數(shù)決定了文件的操作方式馋劈,這里是寫入,以下是常用的文件操作模式:

模式 說明 備注
'w' 寫入 只能向文件里寫入數(shù)據(jù)晾嘶,如果存在同名文件將會清除原來數(shù)據(jù)
'r' 只讀 只能讀取文件里的內(nèi)容妓雾,無法進行編輯
'r+' 讀寫 可以進行文件的讀、寫操作
'a' 添加 內(nèi)容添加到文件末尾

默認情況下垒迂,文件的讀取和輸出都是以文本格式進行的(默認UTF-8編碼)械姻,'b'會以二進制的形式對文件進行操作,'byte'是基本單位机断,一般來說二進制的文件會用在不包含文字的情況楷拳。
在文本模式下,讀取文件時吏奸,Python會把不同平臺的換行符號(Unix: '\n', Windows: '\r\n')統(tǒng)一轉(zhuǎn)換成'\n'欢揖,在寫入文件時,執(zhí)行相反的過程奋蔚,這種模式對于文本文件的操作是沒有問題的她混,但是有一些二進制的數(shù)據(jù)卻會因此損壞,比如'exe'和'jpeg'文件泊碑,在對這些文件進行操作時一定要非常小心坤按。

文件操作的相關(guān)函數(shù)

假設我們的‘man.txt’文件已經(jīng)有一些信息。

f.read(size)

使用f.read(size)來讀取文件的信息馒过,這個函數(shù)會返回一個字符串或者bytes object(不知道咋翻譯合適)臭脓,size是可選的,缺省時將返回所有的信息腹忽,前提是文件數(shù)據(jù)得小于你的機器一次所能讀取的最大容量来累。到達文件末尾時砚作,會返回一個空字符串' ':

>>> f = open('man.txt')
>>> f.read()
'hello world\nmy name is Cesc Fangs\nI like Arsenal!!'
>>> f.read()
''

完成文件操作后,記得用f.close()關(guān)閉文件佃扼。

f.readline()

除了用read()一次性讀取文件內(nèi)容外偎巢,還可以用readline()來逐行讀取文件內(nèi)容:

>>> f = open('man.txt')
>>> f.readline()
'hello world\n'
>>> f.readline()
'my name is Cesc Fangs\n'
>>> f.readline()
'I like Arsenal!!'
>>> f.readline()
'' 

如果不是以新行結(jié)尾的,那么最后一行的不會返回'\n'會被忽略兼耀,但是以空行結(jié)尾的,最后會返回'\n'求冷。
需要逐行讀取文件內(nèi)容時瘤运,我們一般都配合循環(huán)來干:

>>> for line in f:
        print(line, end='')

hello world
my name is Cesc Fangs
I like Arsenal!!

list(f)還可以直接直接把文件內(nèi)容存到列表中來讀取:

>>> f.close()
>>> f=open('man.txt')
>>> list(f)
['hello world\n', 'my name is Cesc Fangs\n', 'I like Arsenal!!']

f.write()

f.write()可以把字符串寫入到文件中匠题,同時返回字符串的長度拯坟,如果要寫入其他數(shù)據(jù),需要先轉(zhuǎn)化成字符串:

>>> f = open('man.txt', 'a')
>>> f.write('I am a ZJUer \n')
14
>>> Ars = ['Ramsy', 16]
>>> s = str(Ars)
>>> f.write(s)
13
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末韭山,一起剝皮案震驚了整個濱河市郁季,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌钱磅,老刑警劉巖梦裂,帶你破解...
    沈念sama閱讀 216,997評論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異盖淡,居然都是意外死亡年柠,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,603評論 3 392
  • 文/潘曉璐 我一進店門褪迟,熙熙樓的掌柜王于貴愁眉苦臉地迎上來冗恨,“玉大人,你說我怎么就攤上這事味赃∠颇ǎ” “怎么了?”我有些...
    開封第一講書人閱讀 163,359評論 0 353
  • 文/不壞的土叔 我叫張陵心俗,是天一觀的道長傲武。 經(jīng)常有香客問我,道長另凌,這世上最難降的妖魔是什么谱轨? 我笑而不...
    開封第一講書人閱讀 58,309評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮吠谢,結(jié)果婚禮上土童,老公的妹妹穿的比我還像新娘。我一直安慰自己工坊,他們只是感情好献汗,可當我...
    茶點故事閱讀 67,346評論 6 390
  • 文/花漫 我一把揭開白布敢订。 她就那樣靜靜地躺著,像睡著了一般罢吃。 火紅的嫁衣襯著肌膚如雪楚午。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,258評論 1 300
  • 那天尿招,我揣著相機與錄音矾柜,去河邊找鬼。 笑死就谜,一個胖子當著我的面吹牛怪蔑,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播丧荐,決...
    沈念sama閱讀 40,122評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼缆瓣,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了虹统?” 一聲冷哼從身側(cè)響起弓坞,我...
    開封第一講書人閱讀 38,970評論 0 275
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎车荔,沒想到半個月后渡冻,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,403評論 1 313
  • 正文 獨居荒郊野嶺守林人離奇死亡夸赫,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,596評論 3 334
  • 正文 我和宋清朗相戀三年菩帝,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片茬腿。...
    茶點故事閱讀 39,769評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡呼奢,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出切平,到底是詐尸還是另有隱情握础,我是刑警寧澤,帶...
    沈念sama閱讀 35,464評論 5 344
  • 正文 年R本政府宣布悴品,位于F島的核電站禀综,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏苔严。R本人自食惡果不足惜定枷,卻給世界環(huán)境...
    茶點故事閱讀 41,075評論 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望届氢。 院中可真熱鬧欠窒,春花似錦、人聲如沸退子。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,705評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至荐虐,卻和暖如春七兜,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背福扬。 一陣腳步聲響...
    開封第一講書人閱讀 32,848評論 1 269
  • 我被黑心中介騙來泰國打工腕铸, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人忧换。 一個月前我還...
    沈念sama閱讀 47,831評論 2 370
  • 正文 我出身青樓恬惯,卻偏偏與公主長得像,于是被迫代替她去往敵國和親亚茬。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,678評論 2 354

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

  • C/C++輸入輸出流總結(jié) 前兩天寫C++實習作業(yè)浓恳,突然發(fā)現(xiàn)I/O是那么的陌生刹缝,打了好長時間的文件都沒有打開,今天終...
    LuckTime閱讀 1,731評論 0 6
  • 1. Java基礎部分 基礎部分的順序:基本語法颈将,類相關(guān)的語法梢夯,內(nèi)部類的語法,繼承相關(guān)的語法晴圾,異常的語法颂砸,線程的語...
    子非魚_t_閱讀 31,625評論 18 399
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務發(fā)現(xiàn)死姚,斷路器人乓,智...
    卡卡羅2017閱讀 134,654評論 18 139
  • 懶得轉(zhuǎn)成字體圖標形式了。于是: 圖片大小46X46
    一只飛閱讀 540評論 0 0
  • 寒假漸去漸遠都毒,遠得不見了一絲蹤影色罚,空留長長的嘆息在風中,空留一堆假期綜合癥在我的身上账劲。 1.胖 人常說每逢佳節(jié)胖三...
    清淺光陰閱讀 423評論 0 0