Python + glob:从项目根目录获取特定文件列表,而脚本位置在其中一个子目录

问题描述 投票:0回答:1

请注意,我是 python 初学者,如果这是多余的,请道歉。

因此,在我当前的存储库中,我具有以下文件夹结构:

repo-name
  ->folder1
     ->subfolder1
        ->script.py
  ->some-naming-convention-folder2
      ->subfolder2
         ->subfolder21
             ->subfolder211
                 ->file.txt
  -> more such "some-naming-convention-folders" here... 

您可能已经猜到了,我正在从位置

script.py
运行我的
path-to-my-repo/folder1/subfolder1
,并且我想从除我的目录之外的所有其他目录中获取所有此类
*.txt
文件。

原因是,如果您观察到这一点,

some-naming-convention-folder2
是我想要关注的唯一类型的文件夹,而且因为所有此类文件夹都将包含这些文件。

此外,该脚本将作为一项作业在 jenkins 上运行。

所以,这就是我正在做的

all_my_files = glob.glob("/full-path-here-to-my-repo/**/*.txt", recursive=True)

只有当我通过 python 解释器执行此操作时,我才能获取所有此类文件。

但是,当我添加如下逻辑时

all_my_files = glob.glob("/just-my-repo-name/**/file.txt", recursive=True)
我得到的只是一个空列表。

我什至尝试过

all_my_files = glob.glob("../**/file.txt", recursive=True)
--> 返回空列表

all_my_files = glob.glob("./just-my-repo-name/*.txt", recursive=True)
--> 返回空列表

有人可以建议我需要做什么吗,或者我还需要使用 pathlib 或 os.walk() 吗?

python-3.x glob
1个回答
0
投票

我真是个傻瓜,我不知道

".."
中的
glob.glob("../directory/file.extension")
是什么意思!因此,那些告诉“glob”嘿,“向上”到我的第一个父目录,然后递归地在该目录下查找
file.extension

而且,在这里我假设如果你在路径中看到“..”,这对我来说意味着“向下”一级。啊啊!

而且,就我而言,因为我有 2 个文件夹深,所以我尝试这样做

../../**/file.txt
,我现在可以列出所有
txt
文件!

© www.soinside.com 2019 - 2024. All rights reserved.