python中關於文件路徑的簡單操作

python中關於文件路徑的簡單操作

幾個主要的函數:


1: os.listdir(path)  //path爲目錄

   功能相當於在path目錄下執行dir命令,返回爲list類型
   舉例:
   print os.listdir('..')
   輸出:
 [a,b,c,d]

2: os.path.walk(path,visit,arg)

   path  :是將要遍歷的目錄
   visit :是一個函數指針,函數圓形爲:
    callback(arg,dir,fileList)
           其中arg爲爲傳給walk的arg , dir是path下的一個目錄,fileList爲dir下的文件和目錄組成的list
   arg:傳給visit用的,對walk沒有什麼作用

   舉例:
   def callback(arg,directory, files):
    print directory,
    print files,
    print arg
    print '--------------------'
   
   os.path.walk('.',callback, '123456')

   輸出:
   . ['path0704.py', 'temp', '/xc2/xb7/xbe/xb6/xcf/xe0/xb9/xd8/xd1/xa7/xcf/xb0.txt'] 123456
   --------------------
   ./temp ['temp.h', 'temp1'] 123456
   --------------------
   ./temp/temp1 ['abc.bmp'] 123456

   如果想找到某個目錄下所有文件,只需要在callback裏面,在fileList中找出文件,即可

   除此之外,還有一個函數可以用那就是os.walk,看10

3:os.path.split(path)
   path 爲一個路徑,
  
   輸出,把path分成兩部分,具體看實例:
   print os.path.split("abc/de.txt")
   ('abc', 'de.txt')
   os.path.split("abc")
   ('', 'abc')
   print os.path.split("de/abc/de")
   ('de/abc', 'de')
  

4: os.path.splitext(filename)
   把文件名分成文件名稱和擴展名
   os.path.splitext(abc/abcd.txt)
   ('abc/abcd', '.txt')

5:  os.path.dirname(path)
    把目錄名提出來
    print os.path.dirname("abc")
          #輸出爲空
    print os.path.dirname('abc/def')  
    abc

6: os.path.basename(filename)
    取得主文件名
    print os.path.basename('abc')
    abc
    print os.path.basename('abc.txt')
    abc
    print os.path.basename('bcd/abc')
    abc    #這個需要注意不包括目錄名稱
    print os.path.basename('.')
    .


7:os.mkdir(path, [mode])
   path爲目錄名: 這裏有個要求,只能創建一級目錄
   比如path爲 abc/def  則當前目錄下必須存在abc 否則失敗
  
8: os.makedirs(path [,mode])
   可以創建多級目錄

9:os.remove(path)刪除一個文件,一定是一個文件
   os.removedirs(path) 刪除一個目錄下所有東西
   os.rmdir(path) 刪除一個目錄,而且一定要空,否則os.errer

10:os.walk(path)
    遍歷path,返回一個對象,他的每個部分都是一個三元組
    ('目錄x',[目錄x下的目錄list],目錄x下面的文件)

    舉例:
    a =    os.walk('.')
    for i in a:
 print i
    輸出:
    ('.', ['abc', 'temp'], ['path0704.py', '/xc2/xb7/xbe/xb6/xcf/xe0/xb9/xd8/xd1/xa7/xcf/xb0.txt'])
    ('.//abc', [], ['/xd0/xc2/xbd/xa8 BMP /xcd/xbc/xcf/xf1.bmp'])
    ('.//temp', ['temp1'], ['temp.h'])
    ('.//temp//temp1', [], ['abc.bmp'])


11:shutil.copy(src,dst)
    把文件src內容拷貝到文件dst中。,目標區域必須可以寫,如果dst存在,則dst被覆蓋

上面的函數基本夠用
其它文件移動操作還請看:shutil模塊:High-level file operations

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