导出列表会产生一个空的CSV文件

时间:2019-07-20 12:36:58

标签: python csv

我有两个压缩在一起的列表,我可以将列表打印出来查看,但是当我尝试将列表导出到csv文件中时,创建了csv文件,但其为空。不知道为什么像即时消息使用相同的方法来分别保存两个列表,它的工作原理。

import csv
import random
import datetime
import calendar

with open("Duty Name List.csv") as CsvNameList:
NameList = CsvNameList.read().split("\n")
date = datetime.datetime.now()
MaxNumofDays = calendar.monthrange(date.year,date.month)

print (NameList)
print(date.year)
print(date.month)
print(MaxNumofDays[1])

x = MaxNumofDays[1] + 1
daylist = list(range(1,x))
print(daylist)

ShuffledList = random.sample(NameList,len(daylist))
print(ShuffledList)


RemainderList = set(NameList) - set(ShuffledList)
print(RemainderList)

with open("remainder.csv","w") as f:
    wr = csv.writer(f,delimiter="\n")
    wr.writerow(RemainderList)

AssignedDutyList = zip(daylist,ShuffledList)
print(list(AssignedDutyList))

with open("AssignedDutyList.csv","w") as g:
    wr = csv.writer(g)
    wr.writerow(list(AssignedDutyList))

没有错误消息产生。

1 个答案:

答案 0 :(得分:1)

在Python 3中,此行

drawable.getBitmap()

创建一个名为x <- c(" 2", " 3", " II", " III") title <- c("a 2", "adbs", "ddig", "difo 3", "fgij III", "sdgoij") endsWith(title, x) 的{​​{3}}。

此行

AssignedDutyList = zip(daylist,ShuffledList)

耗尽迭代器。当执行此行

AssignedDutyList

迭代器没有更多输出,因此不会将任何内容写入文件。

解决方案是在必须重用迭代器内容的情况下,将在迭代器上调用print(list(AssignedDutyList)) 的结果存储在变量中,而不是迭代器本身中。

wr.writerow(list(AssignedDutyList))

作为奖励,list这个名称现在是指实际列表,因此对将来的代码阅读者来说比较容易混淆。