我有一個csv文件,我試圖遍歷並讓它只在其中的時間戳落在指定範圍內時才執行某些操作。我使用的是一個while循環來做到這一點,我每次都增加30秒,但由於某種原因,它只是在第一次循環時迭代csv,而不是每次增加時間(儘管我知道它已經成功完成while循環本身)。我不確定是什麼問題。Python:在while循環中循環訪問csv
try:
csvfilename = sys.argv[1]
except:
csvfilename = "myCSVfile.csv"
csvfile = csv.DictReader(open(csvfilename,'rb'),delimiter=',')
startTime = 1402617311
endTime = 1419544361
while startTime < endTime:
for line in csvfile:
if (startTime + 30) > timeToEpoch(line['EnterTime']) >= startTime:
output = calcFunction(line['EnterN'],line['ExitN'],line['user'])
startTime = startTime + 30
每請求下面是使用CSV模塊印刷csv文件的幾行(格式稍有提高可讀性,還在名字和我的例子不同之處,因爲我改變了他們略):
{
'Time Exit': '17:02:04',
'Duration': '0:02:34',
'Date': '12/7/14',
'ExitN': '12/7/14 17:02',
'PlayerSpace': '1',
'EnterN': '12/7/14 16:59',
'Time Enter': '16:59:30'
}
{
'Time Exit': '17:08:18',
'Duration': '0:08:46',
'Date': '12/7/14',
'ExitN': '12/7/14 17:08',
'PlayerSpace': '2',
'EnterN': '12/7/14 16:59',
'Time Enter': '16:59:32'
}
{
'Time Exit': '17:06:49',
'Duration': '0:04:20',
'Date': '12/7/14',
'ExitN': '12/7/14 17:06',
'PlayerSpace': '3',
'EnterN': '12/7/14 17:02',
'Time Enter': '17:02:29'
}
向我們展示CSV文件的相關示例。使用['csv'](https://docs.python.org/3.4/library/csv.html)模塊。 –
這可能有助於:http://stackoverflow.com/questions/2868354/reading-from-csvs-in-python-repeatedly –
Hey Ziyao Wei - 這絕對似乎讓我更接近,但當我嘗試'csvfile.seek(0 )''我得到'AttributeError:DictReader實例沒有屬性'seek''(我用'csv.DictReader'來讀取我的csv文件) – Mike