我有两个代码示例,它们应该执行相同的操作(处理文本文件并将结果保存到outfile)。 但是,这个对我不起作用:
with codecs.open('outfile.txt', 'w', 'utf-8') as outfile:
for f in os.listdir(my_files):
outfile.write(some_function(codecs.open(f, 'r', 'utf-8')))
outfile.write('\n')
虽然这完美无缺:
outfile = open('outfile.txt', 'w')
for f in os.listdir(my_files)
with open(f) as f_:
text = f_.read().decode('utf-8')
text = some_function(text)
outfile.write(text.encode('utf-8'))
outfile.write('\n')
我是否在使用python编解码器做错了什么? 谢谢!
答案 0 :(得分:2)
这一行...
outfile.write(some_function(codecs.open(f, 'r', 'utf-8')))
...打开文件对象而不传递任何文本。您希望使用read()
来使其正常运行,如下所示:codecs.open(f, 'r', 'utf-8').read()