请问代码为啥检测不出子文件夹里的文本。。
import osdef test1(path,target):
os.chdir(path)
list1 = os.listdir('.')
for each in list1:
tuple1 = os.path.splitext(each)
if not os.path.isdir(each) and tuple1 =='.txt':
file_dict = dict()# 创建空的字典
f = open(os.path.join(path,each),encoding='utf-8')
count1 = 0 #行数
for file_content in f:
list2 = []
count1 += 1
index1 = file_content.find(target)
while index1 != -1:
list2.append(index1) #改用列表装位置
index1 = file_content.find(target,index1+1)
if list2 != []:
file_dict = list2
f.close()
if file_dict != dict():
keys = file_dict.keys()
keys = sorted(keys)
print('在文件[%s]发现关键字[%s]' %(os.path.join(path,each),target))
for file_keys in keys:
print ('在文件第%d行,第【%s】位置出现'%(file_keys,str(file_dict)))
elif os.path.isdir(each):
test1(os.path.join(path,each),target)
os.chdir('..')
path = input('输入查询的初始路径:')
target = input('输入查询的关键字:')
test1(path,target) 我输入path为D:\\QQ下载,这个目录下我创建了一个文本,输入了关键字并保存,检测出来了,D:\\QQ下载\\123,这个子目录下我也创建了一个一样的文本,但是代码检测不到,也不报错,请问啥原因这是。。? 题目是:编写一个程序,用户输入关键字,查找当前文件夹内(如果当前文件夹内包含文件夹,则进入文件夹继续搜索)所有含有该关键字的文本文件(.txt后缀),要求显示该文件所在的位置以及关键字在文件中的具体位置(第几行第几个字符) elif缩进错行了。。。{:9_240:} 不能自己采纳自己啊{:9_220:} 代码一多就容易脑子乱 杨东明 发表于 2021-6-26 17:15
elif缩进错行了。。。
除了 elif 缩进 还有个小问题,建议改成这样, open 中不用打开完整路径,否则填 . 时会报错
import os
def test1(path,target):
os.chdir(path)
list1 = os.listdir('.')
for each in list1:
tuple1 = os.path.splitext(each)
if not os.path.isdir(each) and tuple1 =='.txt':
file_dict = dict()# 创建空的字典
f = open(each,encoding='utf-8')
count1 = 0 #行数
for file_content in f:
list2 = []
count1 += 1
index1 = file_content.find(target)
while index1 != -1:
list2.append(index1) #改用列表装位置
index1 = file_content.find(target,index1+1)
if list2 != []:
file_dict = list2
f.close()
if file_dict != dict():
keys = file_dict.keys()
keys = sorted(keys)
print('在文件[%s]发现关键字[%s]' %(os.path.join(path,each),target))
for file_keys in keys:
print ('在文件第%d行,第【%s】位置出现'%(file_keys,str(file_dict)))
elif os.path.isdir(each):
test1(os.path.join(path,each),target)
os.chdir('..')
path = input('输入查询的初始路径:')
target = input('输入查询的关键字:')
test1(path,target) Twilight6 发表于 2021-6-26 17:22
除了 elif 缩进 还有个小问题,建议改成这样, open 中不用打开完整路径,否则填 . 时会报错
谢谢谢谢{:9_226:}
页:
[1]