使用python编解码器保存文件

时间:2017-06-23 12:54:50

标签: python save codec

我有两个代码示例,它们应该执行相同的操作(处理文本文件并将结果保存到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编解码器做错了什么? 谢谢!

1 个答案:

答案 0 :(得分:2)

这一行...

outfile.write(some_function(codecs.open(f, 'r', 'utf-8')))

...打开文件对象而不传递任何文本。您希望使用read()来使其正常运行,如下所示:codecs.open(f, 'r', 'utf-8').read()