亚洲欧洲国产欧美一区精品,激情五月亚洲色五月,最新精品国偷自产在线婷婷,欧美婷婷丁香五月天社区

      python

      當前位置:中華考試網(wǎng) >> python >> python編程基礎(chǔ) >> 文章內(nèi)容

      python如何遍歷文件夾

      來源:中華考試網(wǎng)  [2020年10月31日]  【

        python下遍歷某個路徑所有文件是很常用的事,一直對其有所困擾,那么python如何遍歷文件夾呢?一起來了解下吧:

        python如何遍歷文件夾

        方法一 : 利用函數(shù) os.walk()

        os.walk() 會返回三元元組 (dirpath, dirnames, filenames)

        dirpath : 根路徑 (字符串)

        dirnames : 路徑下的所有目錄名 (列表)

        filenames : 路徑下的所有非目錄文件名 (列表)

        其中目錄名和文件名都是沒有加上根路徑的,所以需要完整路徑時需要將目錄名或文件名與根路徑連接起來。

        示例 :

        import os

        root = "C:\\dir"

        for dirpath, dirnames, filenames in os.walk(root):

        for filepath in filenames:

        print os.path.join(dirpath, filepath)

        方法二 : 利用函數(shù) os.listdir(), os.path.isdir(), os.path.isfile()

        os.listdir() 可以列出路徑下所有文件和目錄名,但是不包括當前目錄., 上級目錄.. 以及子目錄下的文件.

        os.path.isfile() 和 os.path.isdir() 判斷當前路徑是否為文件或目錄

        示例 :

        import os

        def listDir(rootDir):

        for filename in os.listdir(rootDir):

        pathname = os.path.join(rootDir, filename)

        if (os.path.isfile(filename)):

        print pathname

        else:

        listDir(pathname)

        python如何實現(xiàn)文件夾遍歷

        python 中os.path模塊用于操作文件或文件夾

        os.path.exists(path) 判斷文件路徑是否存在

        dir = "c:\windows"

        if os.path.exists(dir) :

        print "dir exists"

        else :

        print "no exists"

        os.path.isfile(path) 判斷path是否是文件

        dir = "c:\windows\system32\cmd.exe"

        if os.path.isfile(dir) :

        print "file exists"

        else :

        print "no exists"

        os.path.getsize(path) 獲取path文件的大小

        size = os.path.getsize(dir)

        print size/1024

        os.path.walk(path) 遍歷path,返回一個三元組(dirpath, dirnames, filenames). dirpath表示遍歷到的路徑, dirnames表示該路徑下的子目錄名,是一個列表, filesnames表示該路徑下的文件名,也是一個列表. 例如: 當遍歷到c:\windows時,dirpath="c:\windows", dirnames是這個路徑下所有子目錄名的列表,filenames是這個路徑下所有文件名的列表

        for (root, dirs, files) in os.walk("C:\windows"): 列出windows目錄下的所有文件和文件名

        for filename in files:

        print os.path.join(root,filename)

        for dirc in dirs:

        print os.path.join(root,dirc)

        問題 1 獲取給定文件夾的大小?

        要遍歷文件的大小,只需要遍歷文件內(nèi)的所有文件,然后將所有文件夾的大小加起來

        def getDirSzie(dir) :

        for (root,dirs,files) in os.walk(dir,False) :

        Size = 0

        for filename in files :

        Size += os.path.getsize(os.path.join(root,filename))

        print root,Size/1024

        問題 2 遍歷一個文件夾的子目錄,不遍歷子目錄的字目錄?

        os.listdir(path) 函數(shù)列出指定目錄下的文件和文件夾

        dir = 'c:/windows'

        if os.path.exists(dir):

        dirs = os.listdir(dir)

        for dirc in dirs:

        print dirc

        else :

        print "dir not exists"

        問題3 刪除指定目錄下空的目錄

        for (root, dirs, files) in os.walk(path) :

        for item in dirs :

        dir = os.path.join(root, item)

        try :

        print dir

        os.rmdir(dir)

        except :

        pass

        問題4 修改指定目錄下所有文件的文件后綴

      python課程免費試聽預(yù)約

      • 地區(qū):
      • 姓名:
      • 手機:

        for (root,dirs,files) in os.walk(path) :

        for item in files :

        d = os.path.join(root, item)

        name = d + ".eml"

        os.rename(d, name)

        python怎樣遍歷文件夾

        一、os.walk()

        os.walk(top, topdown=True, onerror=None, followlinks=False)

        可以得到一個三元tupple(dirpath, dirnames, filenames),

        第一個為起始路徑,第二個為起始路徑下的文件夾,第三個是起始路徑下的文件。

        dirpath 是一個string,代表目錄的路徑,

        dirnames 是一個list,包含了dirpath下所有子目錄的名字。

        filenames 是一個list,包含了非目錄文件的名字。

        這些名字不包含路徑信息,如果需要得到全路徑,需要使用os.path.join(dirpath, name)

        二、枚舉文件夾下所有文件

        import os

        # 枚舉dirPath目錄下的所有文件

        def main(dirname):

        # begin

        for root, dirs, files in os.walk(dirname):

        print(root)

        print(dirs)

        print(files)

        for dir in dirs:

        print(os.path.join(root, dir))

        for file in files:

        print(os.path.join(root, file))

        print('----------------')

        if __name__ == '__main__':

        main(r'G:\ftp\home\bigberg')

        三、遍歷文件夾獲取大小

        def get_used_size(dirname):

        """

        遍歷文件夾獲取文件大小

        """

        size = 0

        for dir_path, dirs, files in os.walk(dirname):

        # size += sum([os.path.getsize(os.sep.join([dir_path, name])) for name in files])

        for name in files:

        size += os.path.getsize(os.sep.join([dir_path, name]))

        return size

        Python如何循環(huán)遍歷文件

        python中打開文件需要使用內(nèi)置函數(shù)open

        格式:

        open(name[,mode[,buffering]])

        啟動mode和buffering 是可選的,默認情況下mode是r

        mode:

        r:以讀方式打開

        w:以寫方式打開 (文件不存在會創(chuàng)建,存在的話,會清空文件,很危險)

        a:以追加的方式打開

        r+:以讀寫模式打開

        w+:以讀寫模式打開

        a+:以讀寫模式打開

        rb:以二進制讀模式打開(特殊文件需要用文本模式傳輸?shù)脑,建議使用b)

        wb:以二進制寫模式打開

        ab:以二進制追加模式打開

        方法:

        fd = open('/tmp/test.txt','r')

        以讀模式打開,可以利用一個變量去接收,注意這個變量是一個文件對象

        fd.close()

        關(guān)閉打開的文件,(修改等操作,只有關(guān)閉了文件,才會生效)

        fd.write("123")

        寫入(需要寫模式),注意寫入的內(nèi)容必須是一個字符串。

        fd.read(int)

        一次性讀取文件所有內(nèi)容,那么再次執(zhí)行read()方法的時候,指針在末尾,所以就為空了。如果指定了int,那么就只讀取int個字符

        fd.readline()

        一行一行讀取,返回字符串,當指針到文件默認,返回空

        fd.readlines()

        一次讀取所有行,并把每一個行當成一個元素,存儲在序列中(如果文件很大,那么非常占內(nèi)存)

        fd.next()

        第一讀取一行,知道行尾,到行尾的時候會報錯

      責編:fushihao
      • 會計考試
      • 建筑工程
      • 職業(yè)資格
      • 醫(yī)藥考試
      • 外語考試
      • 學(xué)歷考試