Python urllib.urlretrieves 代码实例
Python模块urllib.urlretrieve的代码最佳示例,显示该如何使用sys.stdout。 它们是从开源Python项目中提取出来的。
实例 1
def run(self): geo_db_path = self._map.get_geodb_path() def reportfunc(current, blocksize, filesize): percent = min(float(current)/(filesize/float(blocksize)),1.0) #print(percent) self._parent.report_state('downloading map', percent) if not os.path.exists(os.path.dirname(geo_db_path)): os.makedirs(os.path.dirname(geo_db_path)) self._parent.report_state('getting city database', 0.0) try: urllib.urlretrieve('http://xsser.sf.net/map/GeoLiteCity.dat.gz', geo_db_path+'.gz', reportfunc) except: try: urllib.urlretrieve('http://delcorp.dyne.org/xsser/GeoLiteCity.dat.gz', geo_db_path+'.gz', reportfunc) except: try: urllib.urlretrieve('http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz', geo_db_path+'.gz', reportfunc) except: self._parent.report_state('error downloading map', 0.0) self._map.geomap_failed() else: self._parent.report_state('map downloaded (restart XSSer!!!!)', 0.0) f_in = gzip.open(geo_db_path+'.gz', 'rb') f_out = open(geo_db_path, 'wb') f_out.write(f_in.read()) f_in.close() print('deleting gzipped file') os.remove(geo_db_path+'.gz') self._map.geomap_ready()
实例 2
def _get_files( self, script_files, version ): """ fetch the files """ try: for cnt, url in enumerate( script_files ): items = os.path.split( url ) path = items[ 0 ].replace( "/tags/%s/" % ( __scriptname__.replace( " ", "%20" ), ), "Q:/scripts/%s_v" % ( __scriptname__, ) ).replace( "%20", " " ) file = items[ 1 ].replace( "%20", " " ) pct = int( ( float( cnt ) / len( script_files ) ) * 100 ) self.dialog.update( pct, "%s %s" % ( _( 1007 ), url, ), "%s %s" % ( _( 1008 ), path, ), "%s %s" % ( _( 1009 ), file, ) ) if ( self.dialog.iscanceled() ): raise if ( not os.path.isdir( path ) ): os.makedirs( path ) urllib.urlretrieve( "%s%s" % ( self.base_url, url, ), "%s\%s" % ( path, file, ) ) except: raise else: self.dialog.close() xbmcgui.Dialog().ok( __scriptname__, _( 1010 ), "Q:/scripts/%s_v%s/" % ( __scriptname__, version, ) )
实例 3
def _get_files( self, asset_files ): """ fetch the files """ try: finished_path = "" for cnt, url in enumerate( asset_files ): items = os.path.split( url ) # TODO: Change this to U: for other than xbox drive = xbmc.translatePath( ( "U:\%s" % self.args.install, "Q:\%s" % self.args.install, )[ os.environ.get( "OS", "xbox" ) == "xbox" ] ) path = os.path.join( drive, os.path.sep.join( items[ 0 ].split( "/" )[ self.args.ioffset : ] ).replace( "%20", " " ) ) if ( not finished_path ): finished_path = path file = items[ 1 ].replace( "%20", " " ) pct = int( ( float( cnt ) / len( asset_files ) ) * 100 ) self.dialog.update( pct, "%s %s" % ( xbmc.getLocalizedString( 30005 ), url, ), "%s %s" % ( xbmc.getLocalizedString( 30006 ), path, ), "%s %s" % ( xbmc.getLocalizedString( 30007 ), file, ) ) if ( self.dialog.iscanceled() ): raise if ( not os.path.isdir( path ) ): os.makedirs( path ) url = self.REPO_URL + url fpath = os.path.join( path, file ) urllib.urlretrieve( url.replace( " ", "%20" ), fpath ) except: # oops print error message print "ERROR: %s::%s (%d) - %s" % ( self.__class__.__name__, sys.exc_info()[ 2 ].tb_frame.f_code.co_name, sys.exc_info()[ 2 ].tb_lineno, sys.exc_info()[ 1 ], ) raise else: self.dialog.close() xbmcgui.Dialog().ok( self.title, xbmc.getLocalizedString( 30008 ), finished_path )
本文提供了Python中使用urllib.urlretrieve下载文件的三个实例。这些实例展示了如何处理下载进度报告、错误处理及文件解压等操作。
1万+

被折叠的 条评论
为什么被折叠?



