PYTHON:把读取到的文件名存入excel

需求
读取文件夹下的所有文件名,并存入excel表格
步骤
1. 文件名存入变量
2. 建立excel表格和ws
3. 存入excel
4. 保存excel

先上代码:

import os
import xlwt
p="G:/test folder"#
datas=os.listdir('G:/test folder')
datas=list(datas)
a = xlwt.Workbook(encoding='utf-8')
s = a.add_sheet('sheet表名',cell_overwrite_ok=True)
i=0
for x in datas:
        s.write(i,0,x)
        i=i+1
a.save('Exce1表.xls')

主要的就是在for …in…
这个循环,对我而言较难。
这个意思就是X每次在datas这个seq中按顺序抓一个单位,然后像下执行。
当走到write时,write会像单元格中写入数据。第一个是(i,0),由于i=0,则会在(0,0)写入datas中的第一个数据。然后i+1=i。
之后循环,抓取datas中第二个,再写入单元格(i+1,0)。之后不断循环,完成我的要求。把列表中所有数据,写在ws中。

大概这样。
说几个我在写这段代码时遇到的问题。

1:在最开始的时候我的代码是这样

# for x in datas:
#         for i in range(len(datas)):
#                 s.write(i,0,x)
# a.save('Exce1表.xls')

然后输出的是一列表格完全相同的,但我还没整明白为啥,只能说他第一个循环就把下面所有的i执行了。

2:经过改良,我把循环改成了:

i=0
for x in datas:
      for J in range(len(datas)):
        s.write(i,J,x)
        i=i+1

但是这样就会输出(i,j)个表格,然后需要吧(1,j)全删了才是我想要的。
但在此步之下我探寻出了正确的方法,那便是把J去掉,不需要两层循环,一层就够了。
就是开始时的那段代码。

前两个问题都是我执着于控制单元格排数的执念,我想通过确定i来进行循环,但是这样出现了我暂时无法理解的错误。
于是我便改为对循环计数,每循环一次,自动i+1,这样当第一次datas的循环结束,也不会出现都在一行的情况。

3:还有一个问题是总是对单元格报错,我在网上查了之后,是在建ws时再加入一条代码

sheet.write(“infoPlist”,*cell_overwrite_ok=True*)

加入这行cell_overwrite_ok=True之后就可以正常运作了。

近期忙于考试,都没有用心学习python。上面我说的这个方法虽然可能很简单,大家很容易就做出了,但是我确实是钻研了好久,可能基础比较差吧。

我是打算先学会怎么用,再究其原理,在想办法改进,希望大家轻喷。

你可能感兴趣的:(PYTHON:把读取到的文件名存入excel)