【发布时间】:2021-04-07 04:46:49
【问题描述】:
尝试在当前文件夹和子文件夹的多个文件中搜索一个搜索词并将它们打印到一个文件中。
我可以使用 os.walk 打印出终端中的文件。但我想在文件夹中的所有文件中搜索特定单词
import glob, os
output_file = 'Funkar.txt'
search_str = '"Prefix"'
for root, dirs, files in os.walk("."):
for file in files:
if file.endswith(".wpp"):
print(os.path.join(root, file))
with open(os.path.join(root, file), 'r') as fr, open (output_file,'a', encoding='utf-8') as fw:
for i,line in enumerate(fr):
if line.find(search_str) != -1:
fw.write(line)
现在给我
in decode
return codecs.charmap_decode(input,self.errors,decoding_table)[0]
UnicodeDecodeError: 'charmap' codec can't decode byte 0x9d in position 12: character maps to <undefined>
【问题讨论】:
-
然后呢?你的问题是什么?这段代码有问题吗? (除了可能是错字的坏缩进?)
-
每次调用
open (output_file,'w'...)都会覆盖文件中已有的任何内容。您很可能希望打开以附加open (output_file,'a'...) -
...或者打开写before循环。您可能还需要执行
open(os.path.join(root, file), 'r')才能正确打开每个文件。file只是名称,相对于您的 cwd -
无法找出不好的缩进,我试图改变你所说的但无法让它工作,请告诉我如何? :)
标签: python