0
votes

Avoir une commande wget dans un script python (Windows)

J'ai téléchargé wget dans le dossier et j'exécute la commande suivante:

while True:
    try:
        file=open('recent.txt','a', buffering=1)
        try:
            response=[]
            response=requests.get(API_link,proxies=proxies,headers=headers).text.split('[')[1].split(']')[0]
            response=response.split(',')
            for i in response:
                temp=''
                temp=i.split('"')[1].split('"')[0]
                if temp not in list_:
                    link=''
                    link=starting_part+temp+".mp4"
                    print(link)
                    file.write(link)
                    file.write('\n')
                    list_+=[temp]
            file.close()
            sleep(5)
        except:
            continue    
        print(len(list_))
    except requests.ConnectionError:
        continue
    except requests.exceptions.Timeout:
        continue
    else:
        #print('Something happened\n')
        continue

Existe-t-il un moyen de l'exécuter dans un script Python afin de ne pas avoir à exécuter manuellement cette commande? J'ai un script Python qui a:

print(link)

Je me demande s'il existe un moyen pour que le wget effectue son téléchargement après cette impression?

Voici le script avec lequel je travaille:

wget.exe -i link_goes_here.mp4 -c -nc -P "K:\Folder\of\Saved\videos"


0 commentaires

3 Réponses :


2
votes

Si je comprends bien, vous tapez cette commande dans une ligne de commande. vous pouvez utiliser la bibliothèque de sous-processus pour ce faire.

import subprocess
command = ["wget.exe", "-i", "https://link.com/video.mp4", "-c", "-nc", '"K:\Folder\of\Saved\videos"']
print(link)
process = subprocess.Popen(command)

Je crois que c'est ce que vous demandez sinon dites-moi et je peux vous aider :)


3 commentaires

J'essaie de comprendre cela, mais le lien dans wget est dynamique basé sur le "print (lien)". Cela changerait-il la nature fondamentale de votre code? J'ai mis à jour mon message avec mon code pour le contexte


Tbh Je ne comprends pas totalement ce que vous voulez dire mais vous pouvez utiliser le link intérieur de la variable de commande command = ["wget.exe", "-i", link, "-c", "-nc", '"K: \ Dossier \ sur \ Enregistré \ vidéos "']


Je l'ai essayé avec le 'lien' et les indicateurs ne fonctionnent pas, je ne suis pas sûr des autres indicateurs, mais le répertoire de téléchargement ne fonctionne pas. Il se télécharge simplement dans le répertoire où se trouve wget



1
votes

Tout comme @Quintin l'a dit

import subprocess
command = ["wget.exe", "-i", link, "-c", "-nc", '"K:\Folder\of\Saved\videos"']
print(link)
process = subprocess.Popen(command)

mais utilisez plutôt link après le -i.


0 commentaires

1
votes

Utilisez subprocess.Popen () pour exécuter les commandes du terminal.


0 commentaires