2015-05-06 43 views
-1

我是python中的新成員,我將非常感謝一些幫助。 我在格式2015-04-26 00:00:48來自氣象站(rawdate)產生這樣如何從天氣數據文件中拆分日期

Date,Ambient Temperature (C),Wind Speed (m/s) 
2015-04-26 00:00:48,10.75,0.00 
2015-04-26 00:01:48,10.81,0.43 
2015-04-26 00:02:48,10.81,0.32 

數據,我想將它們分成yearmonthdayhourminute。我到目前爲止的嘗試是這樣的:

for i in range(len(rawdate)): 
    x=rawdate[1].split() 
    date.append(x) 

但它給了我一個充滿空列表的列表。我的目標是將其轉換爲列表清單(使用命令split),其中新數據將以[date, time]的形式存儲到x中。然後我想用「 - 」和「:」分割進一步分割。有人可以提供一些建議嗎?

+0

你可以詳細說明什麼是rawdate stores嗎?它是一個列表還是一個字符串?它包含多個日期時間還是隻包含一個? – SuperBiasedMan

+0

Rawdate就是我正在使用的名稱。此數據來自.txt文件,它包含7行數據,其中第一個是我發佈的格式中的日期。該文件包含全天順序行中的數據。 –

+1

請參閱http://stackoverflow.com/help/mcve並相應地調整您的問題,以便人們可以更輕鬆地回答它。 – GreenAsJade

回答

2

你的代碼是明顯的打破,因爲你沒有使用不是重複上rawdate[1]相同的操作,len(rawdate)倍以外的任何方式循環。

可能你的意思是i你有1

爲了使這個意義上說,你rawdate必須是一個字符串列表(由@SuperBiasedMan的建議)

也許一些接近你了是這樣的後:

>>> dates = [] 
>>> rawdates = ['2015-04-26 00:00:48', '2015-04-26 00:00:49'] 
>>> for i in range(len(rawdates)): 
... the_date = rawdates[i].split() 
... dates.append(the_date) 
... 
>>> dates 
[['2015-04-26', '00:00:48'], ['2015-04-26', '00:00:49']] 
>>> 

始終使用有意義的名稱

+0

非常感謝你,你是對的! –

-1

rawdate[1]將始終返回0原因'2015...'[1] is 0

>>>a = '2015-04-26 00:00:48' 
>>>print([date for date in [i for i in a.split(' ')][0].split('-')] + [time for time in [i for i in a.split(' ')][1].split(':')]) 
>>>['2015', '04', '26', '00', '00', '48'] 
3
>>> from datetime import datetime 

>>> str_date = '2015-04-26 00:00:48' 
>>> datte = datetime.strptime(str_date, '%Y-%m-%d %H:%M:%S') 
>>> t = datte.timetuple() 
>>> y, m, d, h, min, sec, wd, yd, i = t 
>>> y 
2015 
>>> m 
4 
>>> min 
0 
>>> sec 
48 
+0

'strptime()','timetuple()':很好! – GreenAsJade