使用 Pathlib 搜索特定文件夹

Using Pathlib to search for specific folder

我试图找到一个特定的文件夹,其中包含一堆合适的文件。我目前的代码是

redpath = os.path.realpath('.')         
thispath = os.path.realpath(redpath)         
thispath = os.path.realpath(thispath+'/../../../..')
p = Path(thispath)
userinput = 'n'
while (userinput == 'n'):
    text_file = next(p.glob('**/*.fits'))
    print("Is this the correct file path?")
    print(text_file)
    SearchedFiles = []
    SearchedFiles.append(text_file)
    userinput = input("y or n")
    if (userinput == 'n') :
        while(text_file in SearchedFiles) :
            p = Path(thispath)
            text_file = next(p.glob('**/*.fits'))

因此,如果 pathlib 找到了错误的文件,用户会这么说,然后代码会再次搜索,直到找到另一个包含合适文件夹的文件。我陷入了无限循环,因为它只沿着一条路径前进。

我不太确定我明白你想做什么。 然而,难怪您会陷入循环:通过重新初始化 p.glob() 您每次都在重新开始!

p.glob() 实际上是一个生成器对象,这意味着它会自己跟踪它的进度。您可以按其应有的方式使用它:只需遍历它即可。

因此,例如,以下内容可能会更好地为您服务:

redpath = os.path.realpath('.')         
thispath = os.path.realpath(redpath)         
thispath = os.path.realpath(thispath+'/../../../..')
p = Path(thispath)
chosen = None
for text_file in p.glob('**/*.fits'):
    print("Is this the correct file path?")
    print(text_file)
    userinput = input("y or n")
    if userinput == 'y':
        chosen = text_file
        break
if chosen:
    print ("You chose: " + str(chosen))