我正在尝试创建一个简单的搜索引擎来查看文件。为了重用代码,我将搜索功能分开,但由于某种原因,它只是第二次无效。
第一次它显示结果,但第二次我输入一个名字,它根本没有给我任何结果。就像c
变量第二次没有进入searchpart(c, path)
函数一样。
import os
def searchpart(c, path):
employees = os.walk(path)
for root, dirs, files in employees:
names = os.path.basename(root)
if c.lower() in names.lower():
print(root)
os.chdir(root)
for i in os.listdir():
print("-----> {}".format(i))
def welcomepart(path):
# this function allows to reuse the application after a name is search.
c = input("\n-------> please introduce the name? \n")
searchpart(c, path)
def mainfuntion():
path = 'WORKERS'
invalid_input = True
print('______________ Welcome ______________ \n ')
while invalid_input:
welcomepart(path)
mainfuntion()
答案 0 :(得分:1)
这种解决办法似乎解决了这个问题:
def searchpart(c, path):
cwd = os.getcwd()
employees = os.walk(path)
for root, dirs, files in employees:
names = os.path.basename(root)
if c.lower() in names.lower():
print(root)
os.chdir(root)
for i in os.listdir():
print("-----> {}".format(i))
os.chdir(cwd)
它只会记住您在函数调用之前所在的目录,并在返回之前进行更改。
但是,我确信会有一个解决方案,其中不需要行os.chdir(root)
。