使用 xlwt 写入 Excel
Write in Excel using xlwt
我正在尝试列出我的 F: 驱动器中的所有目录并将名称写入 excel。
为此,我使用了 Python 和 xlwt。
我在 excel.I 中写入文件名时遇到一些错误 试图使用 for 循环来增加行号,但它不起作用,因为它在写入第二个值时再次命中同一个单元格.
错误:
Exception: Attempt to overwrite cell: sheetname=u'F_Directories' rowx=1 colx=0
import xlwt
import os
workbook = xlwt.Workbook()
sheet = workbook.add_sheet("F_Directories")
for dir in os.listdir("F:\"):
# <--- Not sure how to increase row number (r)---->
sheet.write(r,0,dir)
workbook.save("C:\Users\praveen\Desktop\OnlinePayment_files\Stuffs.xls")
求推荐。
您可以使用 enumerate()
:
for row, dir in enumerate(os.listdir("F:\")):
sheet.write(row, 0, dir)
它基本上会将当前索引和序列项配对。默认情况下,从 0
:
开始
>>> l = ['a', 'b', 'c']
>>> for index, item in enumerate(l):
... print index, item
...
0 a
1 b
2 c
这是 enumerate
的一个很好的案例:
for r, dir in enumerate(os.listdir("F:\")):
sheet.write(r, 0, dir)
enumerate
就像将 range
函数添加到迭代器 - 它从 0
开始,并在循环的每次迭代中添加 1
。
调用enumerate()的函数就是你需要的,这个函数调用每个元素和元素的索引号。一个简单的例子;
>>> a=["x","y","z"]
>>> for h,y in enumerate(a):
print (h,y)
0 x
1 y
2 z
>>>
所以你应该使用这个;
for index, direc in enumerate(os.listdir("F:\")): #you can write whatever you want
sheet.write(index, 0, direc) #instead of index and direc
#but be sure you don't store them
#as variables before
我正在尝试列出我的 F: 驱动器中的所有目录并将名称写入 excel。
为此,我使用了 Python 和 xlwt。
我在 excel.I 中写入文件名时遇到一些错误 试图使用 for 循环来增加行号,但它不起作用,因为它在写入第二个值时再次命中同一个单元格.
错误:
Exception: Attempt to overwrite cell: sheetname=u'F_Directories' rowx=1 colx=0
import xlwt
import os
workbook = xlwt.Workbook()
sheet = workbook.add_sheet("F_Directories")
for dir in os.listdir("F:\"):
# <--- Not sure how to increase row number (r)---->
sheet.write(r,0,dir)
workbook.save("C:\Users\praveen\Desktop\OnlinePayment_files\Stuffs.xls")
求推荐。
您可以使用 enumerate()
:
for row, dir in enumerate(os.listdir("F:\")):
sheet.write(row, 0, dir)
它基本上会将当前索引和序列项配对。默认情况下,从 0
:
>>> l = ['a', 'b', 'c']
>>> for index, item in enumerate(l):
... print index, item
...
0 a
1 b
2 c
这是 enumerate
的一个很好的案例:
for r, dir in enumerate(os.listdir("F:\")):
sheet.write(r, 0, dir)
enumerate
就像将 range
函数添加到迭代器 - 它从 0
开始,并在循环的每次迭代中添加 1
。
调用enumerate()的函数就是你需要的,这个函数调用每个元素和元素的索引号。一个简单的例子;
>>> a=["x","y","z"]
>>> for h,y in enumerate(a):
print (h,y)
0 x
1 y
2 z
>>>
所以你应该使用这个;
for index, direc in enumerate(os.listdir("F:\")): #you can write whatever you want
sheet.write(index, 0, direc) #instead of index and direc
#but be sure you don't store them
#as variables before