2018-04-05

文件與文件路徑
讀寫文件
用shelve模塊保存變量

1 python 讀寫文件

1.1 文件與文件路徑

windows下非春,

import os
os.path.join('usr', 'bin', 'spam')
usr\\bin\\spam

linux下,

import os
os.path.join('usr', 'bin', 'spam')
usr/bin/spam

1.2 當前工作目錄

每個運行在計算機上的程序,都有一個“當前工作目錄”瓦哎,或cwd漓藕。所有沒有從根文件夾開始的文件名或路徑陶珠,都假定在當前工作目錄下。利用os.getcwd()函數(shù)可以取得當前工作路徑的字符串撵术,并可以利用os.chdir()改變它背率。

>>>import os
>>>os.getcwd()
'c:\\python34'
>>os.chdir('c:\\windows\\system32')
>>>os.getcwd()
'c:\\windows \\system32'

1.3 絕對路徑和相對路徑

有兩種方法指定一個文件路徑
絕對路徑,它總是從根目錄開始嫩与。
相對路徑寝姿,它相對于程序的當前工作目錄。

1.4 用os.makedirs()創(chuàng)建新文件夾

程序可以用 os.makedirs()創(chuàng)建新文件夾(目錄)划滋。在交互式環(huán)境中輸入以下代碼:

>>>import os
>>>os.makedirs('c:\\delicious\\walnut\\waffles')

這里創(chuàng)建了所有必要的中間文件夾饵筑。

1.5 os.path模塊

os.path模塊包含了許多與文件名和文件路徑相關(guān)的有用函數(shù)。在1.1中已經(jīng)使用了os.path來構(gòu)建
所有操作系統(tǒng)上都有效的路徑处坪。

1.5 處理絕對路徑和相對路徑

os.path模塊提供了一些函數(shù)根资,返回一個相對路徑的絕對路徑架专,以及檢查給定的路徑是否為絕對路徑。

調(diào)用os.path.abspath(path)將返回參數(shù)的絕對路徑的字符串玄帕,這是將相對路徑轉(zhuǎn)換為絕對路徑的簡便方法部脚。
調(diào)用os.path.isabs(path),如果參數(shù)是一個絕對路徑裤纹,就返回True委刘,如果參數(shù)是一個相對路徑,就返回False鹰椒。

在交互式環(huán)境下嘗試以下函數(shù)

>>>os.path.abspath('.')
'c:\\Python34'
>>os.path.abspath('.\\Script')
'c:\\Python34\\Script'
>>os.path.isabs('.')
False
>>>os.path.isabs(os.path.abspath('.'))
True

2 文件讀寫過程

Python中锡移,讀寫文件有3個步驟:
1,調(diào)用open()函數(shù)漆际,返回一個File對象淆珊。
2,調(diào)用File對象的read()write()方法奸汇。
3施符,調(diào)用File對象的close()方法,關(guān)閉該文件茫蛹。

2.1 用open()函數(shù)打開文件

要用open()函數(shù)打開一個文件操刀,就要向它傳遞一個字符串路徑,表明希望打開的文件婴洼。這既可以是絕對
路徑骨坑,也可以是相對路徑。open()函數(shù)返回 一個File()的對象柬采。

2.2 讀取文件內(nèi)容

既然有了一個File()的對象欢唾,就可以開始從它讀取內(nèi)容。如果你希望將整個文件的內(nèi)容讀取為一個字符串值粉捻,就使用File()對象r read()方法礁遣。

>>>helloContent = helloFile.read()
>>>helloContent
'Hello world'

或者,可以使用readlines()方法肩刃,從該文件中取得一個字符串的列表祟霍。列表中的每一個字符串就是文本中的每一行。

2.3 寫入文件

打開文件時如果用讀模式盈包,則不能寫入文件沸呐。你需要以“寫入純文本模式”或“添加純文本模式”打開該文件,或簡稱為“寫模式”或“添加模式”呢燥。
寫模式將覆蓋原有的文件崭添。添加模式則是在已有的文件末尾添加文本。如果傳遞給open()文件名不存在叛氨,寫模式和覆蓋模式則都會創(chuàng)建一個新的空文件呼渣。在讀取或?qū)懭胛募蠹椋{(diào)用close()方法,然后才能再次打開該文件屁置。
下面是代碼示例焊夸。

>>>baconFile = open('bacon.txt', 'w')  # 'w'表示的是寫模式
>>>baconFile.write('Hello world!\n')
13
>>>baconFile.close()
>>>baconFile = open('bacon.txt', 'a') # 'a'表示的是添加模式
>>>baconFile.write('Bacon is not a vegetable.')
25
>>>baconFile.close()
>>>baconFile.open('bacon.txt')
>>>content = open('bacon.txt')
>>>baconFile.close()
>>>print(content)
Hello world!
Bacon is not a vegetable.

注意,write() 方法不會像print()函數(shù)那樣缰犁,在字符串的末尾自動添加換行字符淳地,必須自己添加該字符。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末帅容,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子伍伤,更是在濱河造成了極大的恐慌并徘,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,386評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件扰魂,死亡現(xiàn)場離奇詭異麦乞,居然都是意外死亡,警方通過查閱死者的電腦和手機劝评,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,142評論 3 394
  • 文/潘曉璐 我一進店門姐直,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人蒋畜,你說我怎么就攤上這事声畏。” “怎么了姻成?”我有些...
    開封第一講書人閱讀 164,704評論 0 353
  • 文/不壞的土叔 我叫張陵插龄,是天一觀的道長。 經(jīng)常有香客問我科展,道長均牢,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,702評論 1 294
  • 正文 為了忘掉前任才睹,我火速辦了婚禮徘跪,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘琅攘。我一直安慰自己垮庐,他們只是感情好,可當我...
    茶點故事閱讀 67,716評論 6 392
  • 文/花漫 我一把揭開白布乎澄。 她就那樣靜靜地躺著突硝,像睡著了一般。 火紅的嫁衣襯著肌膚如雪置济。 梳的紋絲不亂的頭發(fā)上解恰,一...
    開封第一講書人閱讀 51,573評論 1 305
  • 那天锋八,我揣著相機與錄音,去河邊找鬼护盈。 笑死挟纱,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的腐宋。 我是一名探鬼主播紊服,決...
    沈念sama閱讀 40,314評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼胸竞!你這毒婦竟也來了欺嗤?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,230評論 0 276
  • 序言:老撾萬榮一對情侶失蹤卫枝,失蹤者是張志新(化名)和其女友劉穎煎饼,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體校赤,經(jīng)...
    沈念sama閱讀 45,680評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡吆玖,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,873評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了马篮。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片沾乘。...
    茶點故事閱讀 39,991評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖浑测,靈堂內(nèi)的尸體忽然破棺而出翅阵,到底是詐尸還是另有隱情,我是刑警寧澤尽爆,帶...
    沈念sama閱讀 35,706評論 5 346
  • 正文 年R本政府宣布怎顾,位于F島的核電站,受9級特大地震影響漱贱,放射性物質(zhì)發(fā)生泄漏槐雾。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,329評論 3 330
  • 文/蒙蒙 一幅狮、第九天 我趴在偏房一處隱蔽的房頂上張望募强。 院中可真熱鬧,春花似錦崇摄、人聲如沸擎值。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,910評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽鸠儿。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間进每,已是汗流浹背汹粤。 一陣腳步聲響...
    開封第一講書人閱讀 33,038評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留田晚,地道東北人嘱兼。 一個月前我還...
    沈念sama閱讀 48,158評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像贤徒,于是被迫代替她去往敵國和親芹壕。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,941評論 2 355