【问题标题】:Redirecting downloaded file to users downloads folder (Python)将下载的文件重定向到用户下载文件夹(Python)
【发布时间】:2021-11-02 06:01:53
【问题描述】:

我正在尝试使用 python 和 tkinter 作为练习来构建一个简单的 youtube 视频下载器应用程序。我最终成功地制作了一个下载视频的应用程序,但我希望能够重定向到用户下载文件夹,这样它就不会在可执行文件旁边下载它。以下是我使用 pytube 下载视频的方法:

from pytube import YouTube
video = YouTube("https://www.youtube.com/watch?v=Wcj_tkFAX-o").streams.get_highest_resolution().download()

【问题讨论】:

    标签: python path operating-system


    【解决方案1】:

    您希望在最后将文件路径传递给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 安装尤其不包括 Downloads 文件夹。同样,一些 Windows 服务器安装也没有该文件夹。

    pytube 的额外提示

    我也只是想提醒您这一点,因为我最近刚刚为 pytube 编写了一个包装器,您还应该进行一些错误检查,因为如果视频因任何原因不可用,pytube 可能会引发很多错误。您可以查看this code,了解我在使用该库时遇到的各种潜在情况和异常的示例。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-08-03
      • 1970-01-01
      • 1970-01-01
      • 2021-05-28
      • 2020-04-24
      • 2014-02-17
      • 2019-12-14
      • 2019-02-20
      相关资源
      最近更新 更多