xlrd:想读取多个xl文件的表并存储在一个列表/数组中?(更好的方式?)

2024-10-01 15:43:29 发布

您现在位置:Python中文网/ 问答频道 /正文

我没有多少关于xlrd/xlwt的xp,但是我已经成功地访问了一个我想从中收集数据的文件。我要从一个目录中收集所有文件。我在想,如果有什么方法可以把它们都存储在一个数组/列表中,那么输出到csv会很容易。如果这是一个太多的工作,并且有一个简单的方法plz帮助,否则我使用Idle来玩弄各种想法,到目前为止我已经想出了这个:

>>> import xlrd, xlwt
>>> book = xlrd.open_workbook('c:\excelTry\Papineau.csv.xls')
>>> book.sheet_names()
[u'Charge Codes', u'Month']
>>> sh = book.sheet_by_index(1)
>>> #produces:
>>> sh.book
<xlrd.Book object at 0x01213BF0>
>>> for x in range(0, 10):
        sh.row_values(x)
[u'William Papineau', u'Pay Period 11', '', '', u' ', u' ', '', '', '', u'Weekly Total', '', '', u' ', '', '', '', '', u'Weekly Total', u'Biweekly', u'Percent of Effort']
[u'Index Number', u'Index Description', 40678.0, 40679.0, 40680.0, 40681.0, 40682.0, 40683.0, 40684.0, '', 40685.0, 40686.0, 40687.0, 40688.0, 40689.0, 40690.0, 40691.0, '', u'Total', '']
[u'E45776', u'Seat Belt Study', '', 8.0, 8.0, 8.0, 8.0, u' ', '', 32.0, '', '', '', '', '', u' ', '', 0.0, 32.0, 0.4155844155844156]
[u'E43457', u'MultiScaleWaterQuality', '', '', '', '', '', 8.0, '', 8.0, '', 5.0, 8.0, u' ', '', '', '', 13.0, 21.0, 0.2727272727272727]
[u'E45125', u'GLOSS', '', '', '', '', '', '', '', 0.0, '', '', '', 8.0, 8.0, '', '', 16.0, 16.0, 0.2077922077922078]
[u'E45131', u'GLOS AOC Trib Monitoring', '', '', '', '', '', '', '', 0.0, '', '', '', '', '', 8.0, '', 8.0, 8.0, 0.1038961038961039]

这会产生一个看起来像列表对象的东西,但是我每次试图操作或附加它都会产生错误,说不可编写脚本或不可编辑。文件迭代将由操作系统模块使用操作系统列表目录(路径)和for循环。任何帮助将不胜感激!在


Tags: 文件csv方法目录列表forindexsh
2条回答
data = []
for i in xrange(sh.nrows):
    data.append(sh.row_values(i))
it will append each rows from xls file into list "data".
eg: [['a','b'],['c','d'],['e','f']] like this .

到目前为止,在代码中,您似乎没有对从工作表中获得的值执行任何操作。也许有些代码没有被粘贴到问题中。。。在

你能包括最后一行代码的输出吗?在

你说你想把它全部存储在一个列表中。
试试这样的方法:

final = []
for rowx in xrange(sh.nrows):
    final.extend(sh.row_values(rowx))

另外:
注意Windows路径。只有以下字母与反斜杠不构成转义序列(例如\t或制表符)时,单个反斜杠才有效。其他选项(选项3可能是最好的;除非有特定的理由不使用它):

  1. 原始字符串:book = xlrd.open_workbook(r'c:\excelTry\Papineau.csv.xls')
  2. 正斜杠:book = xlrd.open_workbook('c:/excelTry/Papineau.csv.xls')
  3. ^{}:
    book = xlrd.open_workbook(os.path.join('c:','excelTry','Papineau.csv.xls'))

相关问题 更多 >

    热门问题