昨非 发表于 2020-7-28 09:45:20

我也有同样的问题,可以确定是编码的问题
f = open(file_name,'r',encoding='iso-8859-1')
我这行代码可以支持英文查找,但对中文关键字的查找不返回任何结果(也没有报错)
(我也是萌新,静待大佬解决)

1q23w31 发表于 2020-7-28 09:46:34

天下稽首 发表于 2020-7-28 09:41
你是指?报错的那个吗?我也不是很清楚啊,看错误提示能找出来吗?

import os
initial=input('请输入待查找的目录:')
key=input('请输入关键字:')
for(root,dirs,file)in os.walk(initial):
    for each in file:
      count_line=0
      y=1
      z=0
      if os.path.splitext(each)=='.txt':
            file1=open(os.path.join(root,each),'rb')
            lines = file1.read().decode('utf-8')
            for each_line in lines:
                count_line+=1
                count_index=[]
                x=0
                for i in range(len(each_line)):
                  if each_line==key:
                        count_index.append(i)
                        x=z=1
                if x:
                  if y:
                        print('在文件【{0}】中找到关键字【{1}】'.format(os.path.join(root,each),key))
                        y=0
                  print('关键字出现在第{0}行,第{1}个位置。'.format(count_line,count_index))
            if z:
                print('=================================================')
运行这个代码,

天下稽首 发表于 2020-7-28 09:50:47

1q23w31 发表于 2020-7-28 09:46
运行这个代码,

还是不行呀

1q23w31 发表于 2020-7-28 10:00:59

天下稽首 发表于 2020-7-28 09:50
还是不行呀

不懂了

天下稽首 发表于 2020-7-28 10:18:56

1q23w31 发表于 2020-7-28 10:00
不懂了

没关系,无论如何都非常感谢啦~

Twilight6 发表于 2020-7-28 11:29:48

天下稽首 发表于 2020-7-28 10:18
没关系,无论如何都非常感谢啦~



把你的目录下文本另存为改下编码就好,建议新建个文件夹,把代码和 txt 都重新保存那个文件夹里,然后 txt 通过下面方法保存:
https://xxx.ilovefishc.com/forum/202005/25/072650zqq1fqqmng421bqz.jpg
这里选择 UTF-8 那么 open 就要带上参数 encoding = 'UTF-8':
https://xxx.ilovefishc.com/forum/202005/25/072647nvzjv2zemvgxet5g.jpg
这里如果选择 ANSI 就不用带上参数 encoding :
https://xxx.ilovefishc.com/forum/202006/22/222937li4vv400i6v44b6z.png

陈尚涵 发表于 2020-7-28 18:26:51

Twilight6 发表于 2020-7-28 11:29
把你的目录下文本另存为改下编码就好,建议新建个文件夹,把代码和 txt 都重新保存那个文件夹里, ...

对 ,把编码改成ANSI不用设置编码正常打开就行了~
页: 1 [2]
查看完整版本: 新手/遇到了一个看不懂的异常