我正在尝试为自己创建一个小项目而且我被困住了。 我有一个包含子文件夹的文件夹,每个子文件夹都包含一个名为 QWR.txt 的文本文件。所以我想读取所有文件并将文件中的文本存储在一个文件中。
这是我的代码:
import glob
for filename in glob.iglob('files/**/QWR.txt', recursive=True):
with open(filename, 'r') as file:
s = file.read()
with open('output.txt', "wb") as file:
file.write(s)
一开始它可以工作但是在20多个文件之后它会卡住并给我一个错误:
return codecs.charmap_decode(input,self.errors,decoding_table)[0]
UnicodeDecodeError: 'charmap' codec can't decode byte 0x8a in position 1396: character maps to <undefined>
答案 0 :(得分:0)
你的缩进是错误的。嗯,有两个问题:
import glob
with open('output.txt', "wb") as file:
for filename in glob.iglob('files/**/QWR.txt', recursive=True):
with open(filename, 'rb') as fr:
fw.write(fr.read())
如果输入文件很大并且你无法通过全局读取来获得内存,那么fw.write(fr.read())
的一个很好的替代方案是:
shutil.copyfileobj(fr,fw)