Python遍歷目錄的多個方面

一、Python遍歷目錄樹

import os

def traverse_folder(directory):
    for filename in os.listdir(directory):
        path = os.path.join(directory, filename)
        if os.path.isdir(path):
            traverse_folder(path)
        else:
            print(path)

traverse_folder('/path/to/directory')

要遍歷目錄樹,我們可以使用Python的os模塊。os.listdir()函數可以返回一個目錄下的所有文件和文件夾的名稱列表。通過檢查每個名稱對應的路徑是文件還是目錄,我們可以決定是否遞歸進入該目錄並繼續遍歷。

二、Python目錄在哪

在Python中,您可以使用os.getcwd()函數獲取當前目錄的路徑:

import os

current_directory = os.getcwd()
print(current_directory)

三、Python遍歷目錄下的文件

如果您只想遍歷目錄下的文件而不進入子目錄,可以使用os.path.isfile()函數。

import os

def list_files(directory):
    for filename in os.listdir(directory):
        path = os.path.join(directory, filename)
        if os.path.isfile(path):
            print(path)

list_files('/path/to/directory')

四、Python遍歷文件內容

要遍歷文件內容,您可以使用Python的內置函數open()以讀取模式打開文件。

with open('/path/to/file', 'r') as file:
    for line in file:
        print(line)

五、Python遍歷目錄下的所有子目錄

如果您希望遍歷目錄和所有子目錄,您可以使用遞歸函數:

import os

def list_all_folders(directory):
    for filename in os.listdir(directory):
        path = os.path.join(directory, filename)
        if os.path.isdir(path):
            print(path)
            list_all_folders(path)

list_all_folders('/path/to/directory')

六、Python遍歷目錄和子目錄

要同時遍歷目錄和子目錄中的文件,可以使用os.walk()函數。

import os

for dirpath, dirnames, filenames in os.walk('/path/to/directory'):
    for filename in filenames:
        path = os.path.join(dirpath, filename)
        print(path)

七、Python多線程

在處理大型目錄或文件時,Python的線程功能可以提高效率。下面是一個使用多個線程遍歷目錄的示例:

import os
from concurrent.futures import ThreadPoolExecutor

def list_all_files(directory):
    for dirpath, dirnames, filenames in os.walk(directory):
        for filename in filenames:
            path = os.path.join(dirpath, filename)
            print(path)

def traverse_in_threads(directory):
    with ThreadPoolExecutor(max_workers=5) as executor:
        executor.submit(list_all_files, directory)

traverse_in_threads('/path/to/directory')

八、Python遍歷所有文件

要遍歷目錄及其所有子目錄中的所有文件,可以使用os.scandir()函數。

import os

def list_all_files(directory):
    for dirpath, dirnames, filenames in os.walk(directory):
        for file in filenames:
            path = os.path.join(dirpath, file)
            print(path)

list_all_files('/path/to/directory')

九、Python循環遍歷文件夾

如果您需要遍歷多個目錄,您可以將目錄名稱存儲在列表中,並遍歷該列表:

import os

directories = ['/path/to/directory1', '/path/to/directory2', '/path/to/directory3']

for directory in directories:
    for filename in os.listdir(directory):
        path = os.path.join(directory, filename)
        if os.path.isfile(path):
            print(path)

十、Python文件夾下所有文件

最後,如果您只需要獲取某個目錄下的所有文件名,可以使用os.listdir()函數:

import os

directory = '/path/to/directory'
files = os.listdir(directory)

for file in files:
    path = os.path.join(directory, file)
    if os.path.isfile(path):
        print(path)

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/279925.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-20 15:05
下一篇 2024-12-20 15:06

相關推薦

發表回復

登錄後才能評論