2015-11-13 106 views
-2

我有這樣的代碼:的Python:AttributeError的: 'datetime.datetime' 對象有沒有屬性 '分裂'

import datetime 
import time 

from pysolar.solar import * \ 

aaaa=-1 
anno_array = [] 
#creo una lista dove avrò le date e gli orari di tutto l'anno 2014 
data = datetime.datetime(2014, 1, 1, 0, 0) 
#con la funzione timedelta incremento la data del 1 gennaio 2014 a mezzanotte 
#di un minuto fino ad arrivare al 31 dicembre 2014 alle 23 e 59 (ho così un range di 
#525600 minuti in un anno) 
for i in range(0,525599): 
    data += datetime.timedelta(minutes=1) 
    anno_array.append(data) 
    flusso_diretto_medio_teorico_W_mq_array = [] 
    flusso_diretto_medio_teorico_W_mq_array_anno = [] 
    aaaa=aaaa+1 
    for line2 in anno_array: 
     Type2=line2.split(" ") 
     data_2 = Type2[0] 
     orario_2 = Type[1] 
     #ora devo dividere la data in giorno, mese e anno e l'orario in ore e minuti 
     anno2, mese2, giorno2 = data_2.split("-") 
     ora2, minuto2, secondo2 = orario_2.split(":") 
     anno_2 = int(anno2) 
     mese_2 = int(mese2) 
     giorno_2 = int(giorno2) 
     ora_2 = int(ora2) 
     minuto_2 = int(minuto2) 

     d_2 = datetime.datetime(anno_2, mese_2, giorno_2, ora_2, minuto_2) 
     # dati di input 
#posizione geografica 
     latitudine = 43.8016626 
     longitudine = 11.2558136 

#calcolo elevazione sole - altitude 
     sole_elevazione = get_altitude(latitudine, longitudine, d) 
     sole_elevazione_radianti = math.radians(sole_elevazione) 
     sole_zenith = 90 - sole_elevazione 
     sole_zenith_radianti = math.radians(sole_zenith) 

#visto che la libreria non è in grado di gestire valori di elevazione negativi si forza il codice 

     if sole_elevazione < 0: 
      sole_elevazione = 0 

#pysolar calcola anche l'irraggiamento diretto teorico 

     irraggiamento_diretto = radiation.get_radiation_direct(d, sole_elevazione) 

# per fare i confronti con dati lamma è utile sapere l'intensità di flusso diretto su un piano 
#il lamma misura sul piano la totale e la diffusa. la differenze possiamo dire che è la diretta su un piano 
#il calcolo è simile solo che come cos prendiamo quello dell'elevazione del sole 

     irraggiamento_diretto_su_piano_terreno = abs(math.cos(sole_zenith_radianti)) * irraggiamento_diretto 
     aaaa=aaaa+1 
     flusso_diretto_medio_teorico_W_mq_array_anno.append(irraggiamento_diretto_su_piano_terreno) 

,但它不工作,因爲它說:AttributeError的: 'datetime.datetime' 對象有沒有屬性「拆分」 我該怎麼辦?我想要一個從列表中選擇日期值的代碼,然後使用它們。 謝謝

+0

要追加datetime對象到一個數組,然後拉出來,像串線一樣對待它們。 –

回答

0

使它成爲一個字符串,先用.strftime("%Y-%m-%d %H:%M:%S")但即使是愚蠢的,並呼籲月份等直接

datetime.month例如

相關問題