Python:将列表项写入文本文件

时间:2018-03-13 16:09:23

标签: python excel list text-files xlrd

我使用xlrd将相当大的Excel文件中的一列内容写入单独的文本文件中,该列中的每一行都有一个文本文件。总的来说,我在列中有1312行,这意味着我希望获得1312个文本文件。

这应该是微不足道的。我管理得很好,可以将colum中的所有单个Excel单元格保存到1312项的Python列表中。但由于某种原因,当我运行代码时,它只将1312个列表项中的619个复制到文本文件中。我没有收到错误消息,代码编译成功,它只是拒绝创建剩余的文件。它总是创建619个文件,从不会更多,永远不会更少。

这是我的代码(date用于命名日期之后的文件,这是Excel文件中的另一列。我让datelist检查是否可能没有保存该部分,但它是):

import xlrd
import os

path = r'C:\Users\data'
file = "data.xlsx"

os.chdir(path)

book = xlrd.open_workbook(file)
sheet = book.sheet_by_index(0)
contentlist=[]
datelist=[]
for row in sheet.get_rows():
    date = str(row[5].value)
    datelist.append(date)
    content = str(row[7].value)
    contentlist.append(content)

    for item in datelist:
        filename = item + ".txt"
    for item in contentlist:
        with open(filename, 'w', encoding='utf-8') as f:
            f.write(str(item))

1 个答案:

答案 0 :(得分:0)

该代码看起来完全错误。

我猜你的意思是:

for row in sheet.get_rows():
    name, content = str(row[5].value), str(row[7].value)
    with open(name + ".txt", 'w', encoding='utf-8') as f:
        f.write(content)