python讀寫文件和文件夾操作

一白华、打開文件

f=open('test.txt','r')
f.close()

此方法走越,文件使用結(jié)束后椭豫,用戶必須關(guān)閉,因為文件對象會占用操作系統(tǒng)的資源。

with open('test.txt','r') as f:
      print(f.read)

此方法旨指,引入了with語句來自動調(diào)用close()方法赏酥。

'r':讀

'w':寫

'a':追加

'r+' == r+w(可讀可寫,文件若不存在就報錯(IOError))

'w+' == w+r(可讀可寫谆构,文件若不存在就創(chuàng)建)

'a+' ==a+r(可追加可寫裸扶,文件若不存在就創(chuàng)建)

二進制文件:

'rb'  'wb'  'ab'  'rb+'  'wb+'  'ab+'

二、讀文件

with open('test.txt','r') as f:
      content=f.read()
  • read(): 每次讀取整個文件低淡,包括結(jié)束符姓言,以字符串的格式返回。如果文件大于可用內(nèi)存蔗蹋,為了保險起見何荚,可以反復(fù)調(diào)用read(size)方法,每次最多讀取size個字節(jié)的內(nèi)容猪杭。
with open('test.txt','r') as f:      
      line= f.readline()
      if line:
         print(line)
  • readline() 每次只讀取一行餐塘,包括結(jié)束符,返回的是一個字符串對象皂吮。通常比readlines() 慢得多戒傻。僅當沒有足夠內(nèi)存可以一次讀取整個文件時税手,才應(yīng)該使用 readline()。
with open('test.txt','r') as f:      
      content=f.readlines()
  • readlines(): 一次性讀取整個文件需纳,包括結(jié)束符芦倒,以列表的格式返回。配合 for ... in ... 進行處理不翩。

注意:三種方法把每行末尾的\n也讀進去了兵扬,需要手動刪除

with open('test.txt') as f:            
       content= f.readlines()
       for I in range(len(content)) :
            content[I]=content[I].rstrip('\n')
################################
with open('test.txt') as f:
     arr=[]
     for lines in f.readlines():
         lines=lines.replace("\n","").split(",")
         arr.append(lines)

三、寫文件

with open('test.txt','w') as f:            
        f.write('Hi!')
  • write(): 和read口蝠、readline器钟、對應(yīng),將字符串寫入妙蔗。
with open('test.txt','w') as f:            
        f.writelines(["1\n", "2\n", "3\n"])
  • writelines(): 和readlines對應(yīng)傲霸,將字符串列表寫入,不會自動加入換行符眉反,所以需要手動加入昙啄。

四、文件夾操作

  1. 得到當前工作目錄寸五,即當前Python腳本工作的目錄路徑: os.getcwd()
  2. 返回指定目錄下的所有文件和目錄名: os.listdir()
  3. 函數(shù)用來刪除一個文件: os.remove()
  4. 刪除多個目錄:os.removedirs(r"c:\python")
  5. 檢驗給出的路徑是否是一個文件:os.path.isfile()
  6. 檢驗給出的路徑是否是一個目錄:os.path.isdir()
  7. 判斷是否是絕對路徑:os.path.isabs()
  8. 檢驗給出的路徑是否真地存: os.path.exists()
  9. 返回一個路徑的目錄名和文件名: os.path.split()

例子:

os.path.split('/home/swaroop/byte/code/poem.txt') 
結(jié)果:('/home/swaroop/byte/code', 'poem.txt')
  1. 分離擴展名:os.path.splitext()
  2. 獲取路徑名:os.path.dirname()
  3. 獲取文件名:os.path.basename()
  4. 運行shell命令: os.system()
  5. 讀取和設(shè)置環(huán)境變量: os.getenv() 與os.putenv()
  6. 給出當前平臺使用的行終止符: os.linesep Windows使用'\r\n'跟衅,Linux使用'\n'而Mac使用'\r'
  7. 指示你正在使用的平臺:os.name 對于Windows,它是'nt'播歼,而對于Linux/Unix用戶伶跷,它是'posix'
  8. 重命名:os.rename(old, new)
  9. 創(chuàng)建多級目錄:os.makedirs(r"c:\python\test")
  10. 創(chuàng)建單個目錄:os.mkdir("test")
  11. 獲取文件屬性:os.stat(file)
  12. 修改文件權(quán)限與時間戳:os.chmod(file)
  13. 終止當前進程:os.exit()
  14. 獲取文件大忻啬:os.path.getsize(filename)

五叭莫、目錄操作

  1. 創(chuàng)建目錄
os.mkdir("file")
  1. 復(fù)制文件:
shutil.copyfile("oldfile","newfile") #oldfile和newfile都只能是文件

shutil.copy("oldfile","newfile") #oldfile只能是文件夾,newfile可以是文件烁试,也可以是目標目錄
  1. 復(fù)制文件夾:

  2. shutil.copytree("olddir","newdir") #olddir和newdir都只能是目錄雇初,且newdir必須不存在

  3. 重命名文件(目錄)

os.rename("oldname","newname") #文件或目錄都是使用這條命令
  1. 移動文件(目錄)
shutil.move("oldpos","newpos")
  1. 刪除文件
os.remove("file")
  1. 刪除目錄
os.rmdir("dir") #只能刪除空目錄

shutil.rmtree("dir") #空目錄、有內(nèi)容的目錄都可以刪
  1. 轉(zhuǎn)換目錄
os.chdir("path") #換路徑
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末减响,一起剝皮案震驚了整個濱河市靖诗,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌支示,老刑警劉巖刊橘,帶你破解...
    沈念sama閱讀 206,311評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異颂鸿,居然都是意外死亡促绵,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,339評論 2 382
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來败晴,“玉大人浓冒,你說我怎么就攤上這事〖饫ぃ” “怎么了稳懒?”我有些...
    開封第一講書人閱讀 152,671評論 0 342
  • 文/不壞的土叔 我叫張陵,是天一觀的道長慢味。 經(jīng)常有香客問我僚祷,道長,這世上最難降的妖魔是什么贮缕? 我笑而不...
    開封第一講書人閱讀 55,252評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮俺榆,結(jié)果婚禮上感昼,老公的妹妹穿的比我還像新娘。我一直安慰自己罐脊,他們只是感情好定嗓,可當我...
    茶點故事閱讀 64,253評論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著萍桌,像睡著了一般宵溅。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上上炎,一...
    開封第一講書人閱讀 49,031評論 1 285
  • 那天恃逻,我揣著相機與錄音,去河邊找鬼藕施。 笑死寇损,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的裳食。 我是一名探鬼主播矛市,決...
    沈念sama閱讀 38,340評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼诲祸!你這毒婦竟也來了浊吏?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,973評論 0 259
  • 序言:老撾萬榮一對情侶失蹤救氯,失蹤者是張志新(化名)和其女友劉穎找田,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體着憨,經(jīng)...
    沈念sama閱讀 43,466評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡午阵,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,937評論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片底桂。...
    茶點故事閱讀 38,039評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡植袍,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出籽懦,到底是詐尸還是另有隱情于个,我是刑警寧澤,帶...
    沈念sama閱讀 33,701評論 4 323
  • 正文 年R本政府宣布暮顺,位于F島的核電站厅篓,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏捶码。R本人自食惡果不足惜羽氮,卻給世界環(huán)境...
    茶點故事閱讀 39,254評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望惫恼。 院中可真熱鬧档押,春花似錦、人聲如沸祈纯。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,259評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽腕窥。三九已至粒没,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間簇爆,已是汗流浹背癞松。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留入蛆,地道東北人拦惋。 一個月前我還...
    沈念sama閱讀 45,497評論 2 354
  • 正文 我出身青樓,卻偏偏與公主長得像安寺,于是被迫代替她去往敵國和親厕妖。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 42,786評論 2 345

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