查找不在当前目录中的文件的路径并逐个访问该文件夹中的文件 - Python

Posted

技术标签:

【中文标题】查找不在当前目录中的文件的路径并逐个访问该文件夹中的文件 - Python【英文标题】:Find path of a file which is not in the current directory and access the files in that folder one by one - Python 【发布时间】:2022-01-22 13:29:53 【问题描述】:

我有两个问题。

    我的目标是访问一个文件夹中的多个 .csv 文件。我知道文件夹名称,它不在当前目录中。如何找到该文件夹​​的路径? 找到该文件夹​​的路径后,如何遍历该文件夹中的 .csv 文件? P.S:我不想打开 .csv 文件。

我只想找到该文件夹​​,然后我想将该文件夹中的 .csv 文件加载到其他位置。 注意:我使用的是 macOS

【问题讨论】:

【参考方案1】:

可能 os.walk 是要走的路。比如:

import os 

target_folder = 'I_know_this_folder_name'
csvs = []
for root, dirs, files in os.walk('c:'):  #Substitute '/' for 'c:' if using Mac or linux
    for dirname in dirs:
        if dirname == target_folder:
            for filename in files:
                if filename.lower().endswith('csv'):
                    full_path = os.path.join(root, filename)
                    csvs.append(full_path)

print(csvs)

如您所说,如果您想要目标文件夹中的每个 csv,您可以尝试以下操作(但请注意,它会在任何同名文件夹中包含 csv):

import os 

target_folder = 'I_know_this_folder_name'
csvs = []
for root, dirs, files in os.walk('c:'):  #Substitute '/' for 'c:' if using Mac or linux
    for dirname in dirs:
        if target_folder in root:
            for filename in files:
                if filename.lower().endswith('csv'):
                    full_path = os.path.join(root, filename)
                    csvs.append(full_path)

print(csvs)

【讨论】:

我想访问 target_folder 中的文件。但是上面的解决方案给了我 csv 文件,这些文件存在于 target_folder 位置,而不是其中的文件夹。例如:Desktop/target_folder csvs 具有桌面上存在的 csv 文件的路径,而不是 target_folder

以上是关于查找不在当前目录中的文件的路径并逐个访问该文件夹中的文件 - Python的主要内容,如果未能解决你的问题,请参考以下文章

MFC怎么查找当前目录以及子目录下的*_DS.TXT文件?

Python,在多个目录中逐个删除文件

find 命令详解

在当前目录下递归的查找包含指定字符串的文件

matlab读取任意路径下文件

文件查找——find命令