Python Wget:检查重复的文件并跳过是否存在?

时间:2019-04-04 20:55:14

标签: python wget

因此,我正在使用WGET下载文件,我想在下载文件之前检查文件是否存在。我知道使用CLI版本时,它可以选择:(see example)

# check if file exsists
# if not, download
wget.download(url, path)

使用WGET,它无需命名即可下载文件。这很重要,因为当文件已经有名称时,我不想重命名它们。

如果还有其他文件下载方法可以检查现有文件,请告诉我!谢谢!!!

3 个答案:

答案 0 :(得分:2)

source code中,wget.download()函数似乎没有用于附加参数(例如-nc-N)的选项来跳过下载(如果文件已经存在) 。似乎只有CLI版本支持此功能。

功能:

def download(url, out=None, bar=bar_adaptive):
    ...

您只能选择网址和输出目录

答案 1 :(得分:2)

wget.download()没有任何此类选项。以下变通办法应为您解决问题:

import subprocess

url = "https://url/to/index.html"
path = "/path/to/save/your/files"
subprocess.run(["wget", "-r", "-nc", "-P", path, url])

如果文件已经存在,您将收到以下消息:

File ‘index.html’ already there; not retrieving.

编辑: 如果您是在Windows上运行此程序,则还必须包括shell=True

subprocess.run(["wget", "-r", "-nc", "-P", path, url], shell=True)

答案 2 :(得分:0)

我没有看到python模块具有该选项。

您可以尝试猜测将要使用的文件名(通常它将是URL中最后一个斜杠字符之后的部分)。

或者您可以将文件下载到新的临时目录中,然后检查主目录中是否存在该文件名。