我正在翻译一些PHP代码到Python查找最小和最大时间。我也不是专家。这可能会很多,但有一点值得赞赏。翻译PHP到Python:每个标识符
我尤其是这样大块的代码的挣扎。在这里,我们有一个标识符,即row [0] row [1] row [2]。行[4]是时间戳。对于每个标识符,我们都希望找到“开始”和“结束”日期 - 按照您的想法命名。这是一位同事编写代码的方式:我已经添加了注释,因为我明白发生了什么,但不知道如何将其转换为Python。
到目前为止,在Python中,我已经能够创建一个标识符字典:timestamp,但是还没有能够成功地在这部分问题中使用它来获得我的优势。
问题: - 我丢失了Python在这种情况下一些很明显的和有帮助吗? - 任何地方我能找到一个很容易理解PHP的映射到Python规则(如果存在的话)?
fgetcsv($inputhandle); //read input as csv
while ($row = fgetcsv($inputhandle)) { //read each line in record
$date_arr = date_parse_from_format("Y-m-d H:i:s",$row[4]); //parse timestamp
$newdate = mktime($date_arr['hour'],
$date_arr['minute'],
$date_arr['second'],
$date_arr['month'],
$date_arr['day'],
$date_arr['year']); //store each piece in array form
$endpoints[$row[0]][$row[1]][$row[2]]['end'] = $newdate; //identify endpoint
if(!isset($records[$row[0]][$row[1]][$row[2]])) {
$endpoints[$row[0]][$row[1]][$row[2]]['start'] = $newdate; //identify startpoint
}
$records[$row[0]][$row[1]][$row[2]][$newdate]=$row[5]; //row 5 holds values we care about
}
为背景,这里就是我试图复制过程:
identify endpoints of time<br>
starttime<br>
endtime<br>
create 15 minute time vector while : startime < time < endtime<br>
这里是我迄今为止在Python:
import sys
import csv
from datetime
import time
import numpy
import itertools
//open file with csv reader
filename = open('ICUdata.csv', 'rb')
d = {} // declare dictionary variable
//read file as csv, parse
spam = csv.reader(filename, delimiter=',')
next(spam) #skip header
for row in spam: // first fill in missing values
if row[1] == '':
row[1] = '99999'
if row[2] == '':
row[2] = '99999'
//need datetime parse
datestring = row[4]
date = time.strptime(datestring, "%Y-%m-%d %H:%M:%S") // parsed datetime
//create dictionary of identifiers : realtime
k = id #need this instead of just row[0:3] which creates list
v = row[4]
if k not in d:
d[k] = [v]
#this = row[0:3].append(endpoint)
else:
d[k].append(v)
谢谢!我意识到我应该添加我一直使用的代码,但知道我到目前为止一直在做的事情是一个很好的解决办法。 – 2012-02-08 04:21:16