Bonjour,
Je rencontre un soucis qui me dépasse avec bzip2 dans mon script python ...
Actuellement je fais comme ceci :
Ça ça fonctionne, j'ai voulu concaténer ces 2 commandes
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 from shutil import copy from subprocess import call path_def = expanduser('~') path_grb = join(path_def, 'NoaaDownloader', 'grib') path_www = join('/data', 'apache', 'www', 'html', 'MY.PERSO.space', 'grib') fullgrb = join(path_grb, 'GFS1_' + cpo_tz(c_h)[0] + '_' + cpo_tz(c_h)[1] + '_full.grb') # Compress full.grb to full.grb.bz2 call(['bzip2', fullgrb]) # Copy full.grb.bz2 to www copy(fullgrb + '.bz2', path_www)
Sur le terminal j'arrive à faire comme ceci
Aucun problème ça fonctionne parfaitement, j'ai donc voulu le mettre en place dans le script en utilisant subprocess.call
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 bzip2 -ck ~/NoaaDownloader/grib/GFS1_20200905_06_full.grb > /data/apache/www/html/MY.PERSO.space/grib/GFS1_20200905_06_full.grb.bz2Et là il est pas content du tout ...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 from subprocess import call path_def = expanduser('~') path_grb = join(path_def, 'NoaaDownloader', 'grib') path_www = join('/data', 'apache', 'www', 'html', 'MY.PERSO.space', 'grib') fullgrb = join(path_grb, 'GFS1_' + cpo_tz(c_h)[0] + '_' + cpo_tz(c_h)[1] + '_full.grb') fullgrb_bz2 = join(path_www, 'GFS1_' + cpo_tz(c_h)[0] + '_' + cpo_tz(c_h)[1] + '_full.grb.bz2') # Compress fullgrb and put it in www call(['bzip2', '-ck', fullgrb, '>', fullgrb_bz2])
Je comprends pas du tout pourquoi ça ne fonctionne pas via le script mais si je le fais dans le terminal là ça fonctionne, quelque chose m'échappe ...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 bzip2: I won't write compressed data to a terminal. bzip2: For help, type: `bzip2 --help'. bzip2: Can't open input file >: No such file or directory. bzip2: Can't open input file /data/apache/www/html/MY.PERSO.space/grib/GFS1_20200905_06_full.grb.bz2: No such file or directory.
Mon but final est de le faire sans passer par le terminal en utilisant le module python bz2, mais je trouve la doc pas "facile".
Un petit coup de pouce serait le bienvenu
Merci
Partager