我有这段代码:
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:&#39; datetime.datetime&#39;对象没有属性&#39; split&#39; 我能怎么做?我想要一个代码,从列表中选择日期的值,然后使用它们。 谢谢
答案 0 :(得分:0)
首先使用.strftime("%Y-%m-%d %H:%M:%S")
将其设为字符串,但即使这样也很愚蠢并直接调用月份等
datetime.month