【发布时间】:2021-01-22 16:32:34
【问题描述】:
这是一个更复杂脚本的抽象。目标是从未读电子邮件中获取信息并将其添加到 CSV 文件中。 它还需要首先检查文件是否存在。为了简化,我放置了打印语句而不是函数调用。这仍然带来了问题。
import ezgmail
import csv
orderEmails = ezgmail.search('subject:Automatic message, label:UNREAD')
unreadThreads = ezgmail.unread()
amountMessages = len(orderEmails[0].messages)
number: int
for number in range(amountMessages):
message = orderEmails[0].messages[number]
date = message.timestamp
try:
with open('file.csv','r') as file:
csvReader = csv.reader(file, delimiter=',')
for row in csvReader:
if row[0] == date:
print("Timestamp already exists")
else:
print("Ok")
except FileNotFoundError:
print("No such file")
file.csv 的内容
Date,Name,City
2020-12-27 18:11:16,John,New York
2020-12-29 17:44:23,Mary,Berlin
变量“日期”应该是循环第一次运行时的这个字符串:
2020-12-27 18:11:16
然后这个:
2020-12-30 12:51:32
我期望得到的是:
Timestamp already exists
Ok
我得到的是:
Ok
Ok
Ok
Ok
Ok
Ok
除了显然不明白为什么会发生这种情况,我也不明白为什么会有 6 条“Ok”消息。
【问题讨论】:
-
在
for row in csvReader之后添加print(date)行,看看您是否可以识别您的问题。 -
感谢您的建议。这就是我现在得到的,添加 next(csvReader) 2020-12-27 18:11:16 Ok 2020-12-27 18:11:16 Ok 2020-12-30 12:51:32 Ok 2020-12- 30 12:51:32 好的