En boucle de script exécute le téléchargement et l'enregistrement de fichiers (curl). Mais bouclez les itérations trop rapidement, de sorte que le téléchargement et l'enregistrement des actions n'ont pas le temps de terminer ses opérations. fichiers de résultats Thereat VIENT cassésPython: téléchargement de fichiers multiples à leur tour
def get_images_thread(table):
class LoopThread (threading.Thread):
def run (self):
global db
c=db.cursor()
c.execute(""" SELECT * FROM js_stones ORDER BY stone_id LIMIT 1
""")
ec = EasyCurl(table)
while(1):
stone = c.fetchone()
if stone == None:
break
img_fname = stone[2]
print img_fname
url = "http://www.jstone.it/"+img_fname
fname = url.strip("/").split("/")[-1].strip()
ec.perform(url, filename="D:\\Var\\Python\\Jstone\\downloadeble_pictures\\"+fname,
progress=ec.textprogress)
Que voulez-vous dire par '(boucle)? Utilisez-vous des liaisons python - PyCURL ou un utilitaire de ligne de commande? Il serait utile si vous avez posté une partie de votre code. – cji
ici section de problème de mon code – user377436
Vous n'avez pas posté le code qui fait réellement le téléchargement, donc il n'y a aucun moyen de donner une réponse utile. Vous supposez que le téléchargement se fait de manière asynchrone, ce que vous devez faire est de vous assurer de ne lancer qu'un nombre limité de téléchargements à la fois, puis d'attendre qu'ils se terminent avant d'en commencer un autre. Utilisez une file d'attente pour cela: écrivez des URL dans la file d'attente et ayez un nombre limité de threads les lisant et récupérant les données. Utilisez une autre file d'attente pour revenir au fil principal lorsque vous avez terminé. – Duncan