Python常用文件/文件夾操作

首先引入模塊:import os


判斷是否存在:

os.path.exists(‘filename/dirname’)//文件/文件夾都可以


判斷類型:

os.path.isdir(‘filename')//判斷是否是目錄

os.path.isfile(‘filename') //判斷是否是文件

os.path.islink(‘filename') //判斷是否是鏈接


新建/打開文件:

fp=open(‘filename’, ‘mode’)

mode:

w     以寫方式打開,若文件存在,先清空
a     以追加模式打開 (從 EOF 開始, 必要時創建新文件)
r+     以讀寫模式打開
w+     以讀寫模式打開 (參見 w )
a+     以讀寫模式打開 (參見 a )
rb     以二進制讀模式打開
wb     以二進制寫模式打開 (參見 w )
ab     以二進制追加模式打開 (參見 a )
rb+    以二進制讀寫模式打開 (參見 r+ )
wb+    以二進制讀寫模式打開 (參見 w+ )
ab+    以二進制讀寫模式打開 (參見 a+ )


關閉文件:

fp.close()


文件屬性:

fp.name//文件名

fp.closed//文件是否關閉

fp.mode//文件打開模式

fp.encoding//文件編碼方式

fp.newlines//文件用到的換行模式,是一個tuple


讀文件:

fp.read(size)//讀入固定字節數

fp.readline()//讀一行

fp.readline(size)//讀一行的前size個字節數

fp.readlines()//讀文件的所有行,每行作爲一個list的項,返回該list,內部通過調用readline()實現

fp.readlines(size)//讀文件的所有行,直到讀完或者總共讀夠size字節結束


寫文件:

fp.write('string')//不會另外添加換行符

fp.writelines('string')//不會另外添加換行符


新建目錄:

os.makedirs('dirname')//遞歸創建多級目錄


列出目錄下的所有內容:

os.listdir('dirname')


刪除文件:

os.remove('filename')


刪除目錄:

os.rmdir('dirname')//刪除空目錄

os.removedirs('dirname')//遞歸刪除空目錄


遞歸刪除路徑下的所有文件和文件夾:

方法一:使用shutil模塊:

import shutil 
shutil.rmtree('dirname')

方法二:

# Delete everything reachable from the directory, assuming there are no symbolic links.
# CAUTION:  This is dangerous!  
# For example, if 'dirname' == '/', it could delete all your disk files.
import os
for root, dirs, files in os.walk('dirname', topdown=False):
    for name in files:
        os.remove(os.path.join(root, name))
    for name in dirs:
        os.rmdir(os.path.join(root, name))


對目錄下特定類型的文件進行操作:

方法一:使用fnmatch模塊:

import fnmatch 
import os 
for fileName in os.listdir ( 'dirname' ): 
if fnmatch.fnmath (fileName, '*.txt' ): //'*'表示任意長度的字符串;'?'表示1個字符
print open (fileName).read() 
elif fnmatch.fnmatch ( fileName, '*.exe' ): 
print fileName 

方法二:使用glob模塊:

import glob 
for fileName in glob.glob ( '*.txt' ): 
print 'Text file.' 


將緩衝區寫入硬盤:

fp.flush()


返回文件當前位置:

fp.tell()//以文件開頭爲原點


返回文件下一行:

fp.next()//文件指針也會移到下一行,相當於讀一行


將文件指針標記到固定位置:

fp.seek(offset)//以文件開頭爲原點

fp.seek(offset,mode)//mode=0:以文件開頭爲原點;mode=1:以當前位置爲原點;mode=2:以文件末尾爲原點


將文件裁成規定的大小:

fp.truncate()//將文件指針標記之後的內容裁掉

fp.truncate(size)//將文件裁至只留前size字節;若size比文件大,依據系統可能會不改變,也可能是用0(或隨機內容)把文件補到size大小


獲取當前運行程序路徑:

str=os.getcwd()


更改當前目錄:

os.chdir('dirname')





參考 

http://www.cr173.com/html/18777_1.html

http://blog.163.com/loveyangmao@126/blog/static/6967414320111024000834/

http://blog.csdn.net/adupt/article/details/4435615

http://maincoolbo.iteye.com/blog/626655

http://www.cnblogs.com/yuxc/archive/2011/08/01/2124012.html




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章