将下载的文件重定向到用户下载文件夹 (Python)
Redirecting downloaded file to users downloads folder (Python)
我试图使用 python 和 tkinter 作为练习来构建一个简单的 youtube 视频下载器应用程序。我确实最终成功制作了一个应用程序来下载视频,但我希望能够重定向到用户下载文件夹,这样它就不会在可执行文件旁边下载它。以下是我如何使用 pytube 下载视频:
from pytube import YouTube
video = YouTube("https://www.youtube.com/watch?v=Wcj_tkFAX-o").streams.get_highest_resolution().download()
您想将文件路径传递给最后的 download()
函数调用。一种跨平台的方法是:
from pytube import YouTube
import os
if os.name == "nt":
DOWNLOAD_FOLDER = f"{os.getenv('USERPROFILE')}\Downloads"
else: # PORT: For *Nix systems
DOWNLOAD_FOLDER = f"{os.getenv('HOME')}/Downloads"
video = YouTube("https://www.youtube.com/watch?v=Wcj_tkFAX-o").streams.get_highest_resolution().download(DOWNLOAD_FOLDER)
说明
对 os.getenv
的调用获取用户路径的环境变量。例如,如果您在 C 盘上有一个名为“kieran”的 windows 帐户,则 os.getenv('USERPROFILE') == "C:\Users\Kieran"
。然后您可以在末尾添加 Downloads
。这也适用于您的文件资源管理器和 CMD,您可以进入文件资源管理器的顶部并键入 %USERPROFILE%
,它将带您到该文件夹,或将其键入 CMD 以查看结果。
在linux/MacOS上也是一样的原理,只是变量叫做HOME
.
其他详细信息
请记住,并非所有用户类型都存在这些文件夹,linux 的某些安装特别排除了“下载”文件夹。同样,一些 windows 服务器安装也没有该文件夹。
pytube 的额外提示
我也只是想给你提个醒,因为我最近刚刚为 pytube
写了一个包装器,你也应该做一些错误检查,因为如果视频 pytube
会抛出很多错误由于任何原因不可用。您可以查看 this code,了解我在使用该库时遇到的各种潜在情况和异常的示例。
我试图使用 python 和 tkinter 作为练习来构建一个简单的 youtube 视频下载器应用程序。我确实最终成功制作了一个应用程序来下载视频,但我希望能够重定向到用户下载文件夹,这样它就不会在可执行文件旁边下载它。以下是我如何使用 pytube 下载视频:
from pytube import YouTube
video = YouTube("https://www.youtube.com/watch?v=Wcj_tkFAX-o").streams.get_highest_resolution().download()
您想将文件路径传递给最后的 download()
函数调用。一种跨平台的方法是:
from pytube import YouTube
import os
if os.name == "nt":
DOWNLOAD_FOLDER = f"{os.getenv('USERPROFILE')}\Downloads"
else: # PORT: For *Nix systems
DOWNLOAD_FOLDER = f"{os.getenv('HOME')}/Downloads"
video = YouTube("https://www.youtube.com/watch?v=Wcj_tkFAX-o").streams.get_highest_resolution().download(DOWNLOAD_FOLDER)
说明
对 os.getenv
的调用获取用户路径的环境变量。例如,如果您在 C 盘上有一个名为“kieran”的 windows 帐户,则 os.getenv('USERPROFILE') == "C:\Users\Kieran"
。然后您可以在末尾添加 Downloads
。这也适用于您的文件资源管理器和 CMD,您可以进入文件资源管理器的顶部并键入 %USERPROFILE%
,它将带您到该文件夹,或将其键入 CMD 以查看结果。
在linux/MacOS上也是一样的原理,只是变量叫做HOME
.
其他详细信息
请记住,并非所有用户类型都存在这些文件夹,linux 的某些安装特别排除了“下载”文件夹。同样,一些 windows 服务器安装也没有该文件夹。
pytube 的额外提示
我也只是想给你提个醒,因为我最近刚刚为 pytube
写了一个包装器,你也应该做一些错误检查,因为如果视频 pytube
会抛出很多错误由于任何原因不可用。您可以查看 this code,了解我在使用该库时遇到的各种潜在情况和异常的示例。