如何在文件夹中列出.xlsb文件名?

时间:2018-01-24 02:14:56

标签: python unicode

我有这些行来获取文件夹中的文件名。

# -*- coding: utf8 -*-

import os, sys

reload(sys)  
sys.setdefaultencoding('utf8')

file_folder = "C:\\tem\\"

root, dirs, files = os.walk(file_folder).next()

for path, subdirs, files in os.walk(root):
    for f in files:
        print file_folder + f

当文件夹包含.xlsb文件时,它不起作用。 (Excel二进制工作簿文件)

返回的错误是:

[Decode error - output not utf-8]

我尝试将最后一行更改为编码/解码以使其正常工作但仍然不能。

如何正确显示它们?

1 个答案:

答案 0 :(得分:1)

您的输出终端无法处理某些文件名中的Unicode字符。最简单的解决方案是将输出写入UTF-8编码的文件,然后使用支持Unicode字符的字体使用支持Unicode字符的字体读取结果。您仍然可以使用print的另一个解决方案是获得支持UTF-8的IDE。

#!python2
import os,io

root = u'C:\\tem'  # Use a Unicode root with os.walk() to get Unicode filenames.

with io.open('files.txt','w',encoding='utf8') as out:
    for path, subdirs, files in os.walk(root):
        for f in files:
            out.write(os.path.join(path,f) + u'\n')

注意: