【问题标题】:Iterate through different folders遍历不同的文件夹
【发布时间】:2021-11-22 23:27:56
【问题描述】:

我目前在一个包含许多不同文件夹的目录中。这些文件夹以“YYYY_MM_DD_HH-MM-SS-SSS”的日期和时间命名。

我现在需要从一个文件夹迭代到另一个文件夹:

A) 将文件夹命名中的每个日期和时间存储在一个连续数组中。

B) 进入该文件夹,读取一个 .xlxs 文件,并将数据存储在一个数组中

C) 退出文件夹并转到下一个文件夹。

不幸的是,我对 B 只有一个想法,比如:

 pd.read_excel(("{fname}/NAMEOFEXCELFILE.xlsx".format(fname = newpath)), skiprows = 1, header = None, usecols = [5])

是否有人对“从文件夹移动到文件夹”部分有任何想法,包括节省时间的部分?

基本上在运行代码之后,我需要一个带有时间的数组A和一个与数组A相同长度的数组B,其中包含来自excel文件的值。

【问题讨论】:

    标签: python pandas operating-system


    【解决方案1】:

    您可以使用Path.iterdir 遍历文件夹。假设当前工作目录是包含所有日期时间文件夹的目录,并且它们是那里唯一的东西,您可以像这样遍历每个文件夹:

    from pathlib import Path
    
    # ...
    
    folder_names = []
    spreadsheet_contents = []
    
    current_directory = Path.cwd()
    for folder in current_directory.iterdir():
        folder_names.append(folder.name)
    
        spreadsheet_path = folder / "spreadsheet.xlsx"
        spreadsheet_contents.append(pd.read_excel(spreadsheet_path, ...))
    

    请注意,文件夹名称仍然是字符串。如果要解析实际的日期和时间,可以使用datetime.strptime

    【讨论】:

    • 非常感谢!您对不同命名的 excel 文件的情况也有想法吗?
    【解决方案2】:

    glob 模块可以帮助您遍历文件夹和子文件夹 https://docs.python.org/3/library/glob.html

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-27
      • 2023-03-03
      • 2019-09-03
      • 2020-11-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多