python文件操作系统课后题
import osFile_name = input('请输入待查找的初始目录:')
target_file_name = input('请输入带查找的目标文件:')
def changedir(File_name,target_file_name):
a = os.chdir(File_name)
b = os.listdir(File_name)
for each_one in b:
if each_one == target_file_name:
print(os.getcwd()+os.sep+each_one)
if os.path.isdir(each_one):
changedir(each_one,target_file_name)
os.chdir(os.pardir)
changedir(File_name, target_file_name)
看了答案之后自己写的,为什么for循环中的b的位置只能用os.listdir(os.curdir),我这样写就会报错啊 答案中写的递归后要返回上一层目录也不明白 第一个问题:因为你在递归的过程中,你已经切换到 File_name 下了,当前目录已经没有 File_name 这个目录了,所以你用File_name就会报错了,你应该是 listdir当前目录的
第二个问题:你切换到了下一级目录,递归到没有目录可以递归了,当然要返回上一级目录了
import os
File_name = input('请输入待查找的初始目录:')
target_file_name = input('请输入带查找的目标文件:')
def changedir(File_name,target_file_name):
os.chdir(File_name) # 这里只是切换目录,不需要赋值
b = os.listdir(".") # 这里应该用当前目录 .
for each_one in b:
if each_one == target_file_name:
print(os.getcwd()+os.sep+each_one)
if os.path.isdir(each_one):
changedir(each_one,target_file_name)
os.chdir(os.pardir)
changedir(File_name, target_file_name)
页:
[1]