Bonjour,
Je suis confronté à un soucis aléatoire lorsque je télécharge les fichiers grib (.grb2) à la NOAA.
J'ai l'impression que de temps à autre, je tombe pile poil au moment où le fichier est mis a dispo et donc il ne le télécharge que "partiellement" ce qui plus tard me fait planter le script.
Voici le code que j'utilise (simplifié):
Code PYTHON : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39 from requests import Session [...] s = Session() noaaUrl = 'https://nomads.ncep.noaa.gov/cgi-bin/filter_gfs_1p00.pl' params = { 'file': 'file', 'lev_10_m_above_ground': 'on', 'var_UGRD': 'on', 'var_VGRD': 'on', 'leftlon': '0', 'rightlon': '360', 'toplat': '90', 'bottomlat': '-90', 'dir': 'dir' } for CURR_TM in range(0, 387, 3): params['file'] = 'gfs.t' + TZ + 'z.pgrb2.1p00.f' + TM params['dir'] = '/gfs.' + YYYYMMDD + '/' + TZ grb2file = 'GFS1_' + YYYYMMDD + '_' + TZ + '_' + TM + '.grb2' while True: r = s.get(noaaUrl, params=params) if r.status_code != 200: # r.status_code != requests.codes.ok print('Waiting ...') sleep(60) else: break r = s.get(noaaUrl, params=params) with open(join(PATH_FOLDER_GRB2, grb2file), 'wb') as f: for chunk in r.iter_content(chunk_size=None): f.write(chunk) [...]
Est ce que quelque chose choc dans ce bout de code ?
J'essaye en général de me débrouiller par moi même mais là clairement je sais plus trop où chercher pour résoudre mon soucis ...
Y'a t'il un moyen de vérifier l'intégrité du fichier téléchargé ? Si oui vers quelle méthode se tourner ?
J'ai pensé à utiliser Try: ... Except "Error" : ... pour relancer le script en cas de plantage car il plante plus loin quand j'exploite le fichier corrompu, mais résoudre cette histoire " d'intégrité du fichier " me semble plus appropriée.
Merci de vos lumières 😉
Partager