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"
3 Réponses :
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 :)
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
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.
Utilisez subprocess.Popen () pour exécuter les commandes du terminal.