用xlrd显示正在处理的文件名,python中Book类没有filename属性

1 投票
2 回答
2930 浏览
提问于 2025-04-17 14:47

我正在尝试做一件我觉得应该很简单的事情,但似乎在xlrd的Book类中没有这个属性。

在解析一个文件夹里的所有xlsx文件时,我想记录每个文件中存在的错误。为了做到这一点,我需要打印出正在处理的文件名。

目标:打印出xlrd正在处理的文件名,比如下面的例子中的"filename.xlsx"。

示例代码:

Wb = xlrd.open_workbook ( "./data/excel_files/filename.xlsx" )
print "File being processed is: %s" % Wb.name_obj_list[0].name

这段代码输出的是"_xlnm._FilterDatabase"。我想打印的是"filename.xlsx"。但是Book类的文档中没有简单的方法来做到这一点。http://www.lexicon.net/sjmachin/xlrd.html#xlrd.Book-class

有什么建议吗?

2 个回答

0

我刚刚把一个文件名通过Wb对象从另一个类传过去,然后把它打印出来了。

0

试试这个简单的方法:

for filename in glob('*.xls*'):
    try:
       wb = xlrd.open_workbook(filename)
    except xlrd.XLRDERROR:
       print 'Problem processing {}'.format(filename)

撰写回答