Je télécharge donc des fichiers avec WGET et je veux vérifier si le fichier existe avant de le télécharger. Je sais qu'avec la version CLI, il a une option pour: (voir exemple) a>. Avec WGET, il télécharge le fichier sans avoir besoin de le nommer. Ceci est important car je ne veux pas renommer les fichiers alors qu'ils ont déjà un nom. S'il existe une autre méthode de téléchargement de fichiers permettant de vérifier les fichiers existants, veuillez me le dire! Merci !!! # check if file exsists
# if not, download
wget.download(url, path)
3 Réponses :
Je ne vois pas que le module python a cette option.
Vous pouvez essayer de deviner le nom de fichier qui sera utilisé (généralement, ce sera la partie de l'url après le dernier caractère barre oblique).
Ou vous pouvez télécharger le fichier dans un nouveau répertoire temporaire, puis vérifier si ce nom de fichier existe dans votre répertoire principal.
À partir du code source , le La fonction wget.download ()
ne semble pas avoir l'option pour des paramètres supplémentaires tels que -nc
ou -N
pour sauter les téléchargements si le fichier existe déjà . Seule la version CLI semble prendre en charge cela.
La fonction:
def download(url, out=None, bar=bar_adaptive): ...
Vous ne pouvez choisir que l'url et le répertoire de sortie
wget.download ()
n'a pas une telle option. La solution de contournement suivante devrait faire l'affaire pour vous:
subprocess.run(["wget", "-r", "-nc", "-P", path, url], shell=True)
Si le fichier est déjà là, vous obtiendrez le message suivant:
File âindex.htmlâ already there; not retrieving.
MODIFIER:
Si vous exécutez ceci sous Windows, vous devrez également inclure shell = True
:
import subprocess url = "https://url/to/index.html" path = "/path/to/save/your/files" subprocess.run(["wget", "-r", "-nc", "-P", path, url])
J'obtiens une erreur: `` `` [WinError 2] Le système ne trouve pas le fichier spécifié '' ``
@ 641i130 Vous pouvez utiliser subprocess.run (["wget", "-r", "-nc", "-P", path, url], shell = True)
si vous exécutez ceci sur Windows. J'ai modifié ma réponse pour inclure cette option pour ceux qui exécutent Windows. J'espère que cela aide.
Je vous remercie! Cela a été très utile!