【发布时间】:2017-01-27 13:30:19
【问题描述】:
我有一个 Python,它将每 x 秒读取一个 CSV 文件。
我做的是:
打开文件,以 CSV 格式读取信息,循环每个条目
这是在这个 Python 文件中完成的:
import csv
import time
import datetime
CSV_PLAN = "./XoceKochPlan.csv"
chargePlanFile = open(CSV_PLAN, 'rt')
def loopMe():
try:
for eachRow in reader:
print (eachRow)
except Exception, ex:
print ("Error processFileing the Thread" + str(ex))
print ("opening file " + str(CSV_PLAN))
now = datetime.datetime.utcnow().strftime("%a %b %d %H %M %S %Z %Y")
print ("Now " + str(now))
reader = csv.reader(chargePlanFile)
loopMe()
目前的输出非常好。
但如果我这样做:
loopMe()
time.sleep(10)
loopMe()
那么文件只打印一次!
问题是为什么?
我错过了什么?什么是内部消耗的,或者阅读器在第一个循环之后只是空的?
【问题讨论】:
-
在你的阅读器还在文件末尾之前。
-
你应该重新分配:
reader = csv.reader(chargePlanFile) -
@iFlo: 不行,重读文件后还是一个循环!