i[2]以及i[0]是什么?
def search_files(key,detail):all_files = os.walk(os.getcwd())
txt_files = []
for i in all_files:
for each_file in i:
if os.path.splitext(each_file) == 'txt':
each_file = os.path.join(i,each_file)
txt_files.append(each_file)
foe each_txt_file in txt_files:
key_dict = search_in_file(each_txt_file,key)
if key_dict:
print('======================================')
print('在文件【%s】中找到关键字【%s】'%(each_txt_file,key))
if detail in ['Yes','YES','yes']:
print_pos(key_dict)
如题 本帖最后由 jackz007 于 2022-9-17 23:27 编辑
os . walk() 会多次返回搜索结果,每次只返回一个子目录的搜索结果,每次返回的结果是一个由 3 个元素构成的元组 (root , dirs , files),其中,root 是一个字符串,指示的是当前搜索路径,比如,"C:\Windows\System32",dirs 是一个由 "C:\Windows\System32" 内所有子目录名构成的列表,files 是一个由 "C:\Windows\System32" 内所有普通文件名构成的列表。
所以,
all_files = os.walk(os.getcwd()) # 这将会从当前目录开始,递归遍历目录内所有的子目录,并给出每个子目录的路径及其内所有的子目录列表和普通文件列表
for i in all_files: # i 对应于 root,i 对应于 dirs,i 对应于 files
os.walk 方法返回的是一个三元组生成器
即该生成器中元素均为三元组结构:(路径,该路径下包含子目录, 该路径下包含文件)
所以第一个 for 循环,是将每个三元组取出,赋值给 i
所以对于 i 来说,就是此时三元组中的 路径,i 表示此路径下保护的子目录,i 即包含的文件
页:
[1]