使用 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))
我试图找到一个特定的文件夹,其中包含一堆合适的文件。我目前的代码是
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))