簡體   English   中英

循環瀏覽文件列表

[英]Loop through list of files

我正在開發數據列檢查的過程,但是在弄清楚如何正確循環遍歷文件列表時卻遇到了困難。 我有一個包含csv文件列表的文件夾。 我需要檢查每個文件是否都維護特定的結構。 我不擔心檢查每個文件的結構,我更擔心如何從dir中正確提取每個文件,對其進行數據幀處理,然后再移至下一個文件。 任何幫助將非常感激。

def files(path):
    files = os.listdir(path)
    len_files = len(files)
    cnt = 0

    while cnt < len_files:
        print(files)
        for file in os.listdir(path):
            if os.path.isfile(os.path.join(path, file)):
                with open(path + file, 'r') as f:
                    return data_validate(f)


def data_validate(file):
    # Validation check code will eventually go here...

    print(pd.read_csv(file))


def run():
   files("folder/subfolder/")

您使用哪個版本的python?

我使用Pathlib和python3.6 +對熊貓進行了大量文件處理。 我發現Pathlib易於使用,盡管您仍然需要投入os來實現它們尚未實現的幾個功能。 另外一個好處是,可以將Path對象直接傳遞到os函數中,而無需進行修改-所以我喜歡靈活性。

這是我用來遞歸地遍歷任意目錄結構的函數,我對該目錄結構進行了修改,使其看起來更像上面您要實現的目標,並返回了DataFrames列表。

如果您的目錄總是平坦的,則可以進一步簡化它。

def files(directory):
    top_dir = Path(directory)
    validated_files = list()
    for item in top_dir.iterdir():
        if item.is_file():
            validated_files.append(data_validate(item))
        elif item.is_dir():
            validated_files.append(files(item))
    return validated_files

暫無
暫無

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

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