Python 3.x os.system()是在Python脚本中创建一组文件的最佳方法吗?

Python 3.x os.system()是在Python脚本中创建一组文件的最佳方法吗?,python-3.x,Python 3.x,我想在一个Python脚本中的一个目录中下载一组url托管和密码保护的文件。我的愿景是有一天我能够使用joblib或其他东西并行下载每个文件,但现在,我只关注wget命令 现在,我可以使用以下工具下载单个文件: import os os.system("wget --user myUser --password myPassword --no-parent -nH --recursive -A gz,pdf,bam,vcf,csv,txt,zip,html https://url/t

我想在一个Python脚本中的一个目录中下载一组url托管和密码保护的文件。我的愿景是有一天我能够使用joblib或其他东西并行下载每个文件,但现在,我只关注wget命令

现在,我可以使用以下工具下载单个文件:

import os

os.system("wget --user myUser --password myPassword --no-parent -nH --recursive -A gz,pdf,bam,vcf,csv,txt,zip,html https://url/to/file")
但是,这也有一些问题-例如,没有下载过程的记录-我只知道它在工作,因为我可以看到文件出现在我的目录中

有没有人对我如何改进这一点有什么建议,特别是考虑到有一天我想并行下载许多文件,然后再回去看看哪些文件失败了


谢谢你的帮助

在Python中有一些很好的库可以通过HTTP本地下载文件,而不是启动外部程序。一种功能强大但易于使用的非常流行的方法称为请求:

如果需要,您必须自己实现某些功能,如
--recursive
(尽管您的示例很混乱,因为您使用
--recursive
,但假设您正在下载一个文件)。例如,见

如果需要进度条,您可以将另一个名为
tqdm
的库与请求结合使用。看


如果您正在下载的文件很大,下面是我写的一个答案,说明如何获得最佳性能(最快为
wget
):。

关于程序:使用wget的
--progress
选项。哦,太棒了!非常感谢您提供这些有用的链接!很好的理解——递归——这是wget命令“下载文件夹中的所有内容”版本的延迟,但我想在我提出的方案中,我不再需要它了。