2024-09-01
Python
00

(1)本质核心是多进程里执行os.system("wget filename"),开17个进程的进程池意味着同时在下载17个文件。

(2)将指令全部放列表needgfsfile里面。

python
import datetime import multiprocessing import os def downloadgfs(filename): os.system(filename) start_hour = 12 yesterday = (datetime.datetime.now() - datetime.timedelta(days=1)).replace(hour=start_hour, microsecond=0) ymdstr = f"{str(yesterday.year).zfill(4)}{str(yesterday.month).zfill(2)}{str(yesterday.day).zfill(2)}{str(start_hour).zfill(2)}" if not os.path.exists(ymdstr): os.mkdir(ymdstr) needgfsfile = [ f"wget ftp://ftpprd.ncep.noaa.gov/pub/data/nccf/com/gfs/prod/gfs.{ymdstr[:-2]}/{ymdstr[-2:]}/atmos/gfs.t{ymdstr[-2:]}z.pgrb2.0p50.f{str(i * 24).zfill(3)} -P {ymdstr}/" for i in range(17)] p = multiprocessing.Pool(processes=17) # 进to程池 _ = [p.apply_async(func=downloadgfs, args=(i,)) for i in needgfsfile] p.close() p.join()
如果对你有用的话,可以打赏哦
打赏
ali pay
wechat pay

本文作者:Dong

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC。本作品采用《知识共享署名-非商业性使用 4.0 国际许可协议》进行许可。您可以在非商业用途下自由转载和修改,但必须注明出处并提供原作者链接。 许可协议。转载请注明出处!