|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
第030讲:文件系统作业 编写一个程序,用户输入关键字,查找当前文件夹内(如果当前文件夹内包含文件夹,则进入文件夹继续搜索)所有含有该关键字的文本文件(.txt后缀),要求显示该文件所在的位置以及关键字在文件中的具体位置(第几行第几个字符)
请教问题:为什么我的程序对所在目录下的“.txt”都能找到,但对于查找关键字在文件中的具体位置时却找不到或者报错!!请大佬指点!!!
报错现象
import os
name = input('请将该脚本放于待查找第文件夹内,请输入关键字:')
os.chdir('e:\\')
print(os.getcwd())
file_name = os.walk('e:\\')
file = []
result = []
num_hh = 0
num_zf = 0
#查找指定目录下所有'.txt'文件
for each in file_name:
for each11 in each[2]:
if (os.path.splitext(each11))[1] == '.txt':
file.append((each[0],each11))
print(file)
answer = input('请问是否要打印关键字【{0}在文件中的具体位置(YES/NO)】:')
#查找所有'.txt'文件下含有关键字'name'的行号和字符号
for each11 in file:
os.chdir(each11[0])
f = open(each11[1],'r', encoding='UTF-8') #报错地点
for eachline in f:
print(eachline)
for each22 in eachline:
if name == each22:
num_zf += 1
print('在文件【{0}】中找到{1}'.format(each11,name))
print('【{0}】出现在第{1}行,第{2}位置'.format(name,num_hh,num_zf))
num_hh += 1
隔壁也有个帖子一样的问题,现在直接 copy 了:
报错原因:当前统计的文件下有多种编码格式的 txt 文本文件,导致 open 参数只能指定一种编码,而使得打开不同编码 txt 文件时候引发报错
解决方法:创建一个新文件夹,将代码文件存放在新建文件夹内,再将你的 txt 测试文本按下面操作重新另存为设置下文件编码
第一步,打开 txt 文件点击另存为:
第二步,选择编码,这里选择 utf-8 ,那么 open 参数里面就必须带上 encoding = 'UTF-8':
或者选择 ANSI ,如果是 ANSI 编码,那么 open 里面就不用加上 encoding 参数:
|
|