簡體   English   中英

從多個文件夾中讀取多個 txt 文件

[英]Reading multiple txt files from multiple folders

我有 20 個文件夾,每個文件夾包含 50 個 txt 文件,我需要閱讀所有文件夾以比較每個文件夾的字數。 我知道如何讀取一個文件夾中的多個文件,但是速度很慢,有沒有更有效的方法,而不是像下面這樣一個一個地讀取文件夾?

import re
import pandas as pd
import seaborn as sns
from matplotlib import pyplot as plt

import os
import glob

1. folder1

folder_path = '/home/runner/Final-Project/folder1'

for filename in glob.glob(os.path.join(folder_path, '*.txt')):
  with open(filename, 'r') as f:
    text = f.read()
    print (filename)
    print (len(text))

2. folder2

folder_path = '/home/runner/Final-Project/folder2'

for filename in glob.glob(os.path.join(folder_path, '*.txt')):
  with open(filename, 'r') as f:
    text = f.read()
    print (filename)
    print (len(text))

您可以像使用glob一樣執行類似的操作,但使用目錄名稱。

folder_path = '/home/runner/Final-Project'

for filename in glob.glob(os.path.join(folder_path,'*','*.txt')):
    # process your files

os.path.join()中的第一個'*'代表任何名稱的目錄。 因此,像這樣調用glob.glob()將通過 go 並在folder_path內的任何目錄中找到任何文本文件

function 下面將返回所有目錄和子目錄中的文件列表,而不使用 glob。 從文件列表中讀取並打開讀取。

def list_of_files(dirName):
    files_list = os.listdir(dirName)
    all_files = list()
    for entry in files_list:
        # Create full path
        full_path = os.path.join(dirName, entry)
        if os.path.isdir(full_path):
            all_files = all_files + list_of_files(full_path)
        else:
            all_files.append(full_path)

    return all_files

print(list_of_files(<Dir Path>))  # <Dir Path>  ==> your directory path

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM