Pytube 输出路径
Pytube output path
我的 pytube 输出路径有问题,当我将 output_path 设置为 C:/Users/%UserProfile%/Desktop 视频停止下载时,代码有什么问题?
import PySimpleGUI as sg
import re
from pytube import YouTube
sg.theme('Dark')
layout = [
[sg.Text('Enter Youtube video link'), sg.InputText()],
[sg.Button('Download'), sg.Button('Cancel')]]
# Create the Window
window = sg.Window('Youtube Downloader', layout)
# Event Loop to process "events" and get the "values" of the inputs
while True:
event, values = window.read()
if event == sg.WIN_CLOSED or event == 'Cancel': # if user closes window or clicks cancel
break
if re.search(r'\byoutube.com\b', values[0]) or re.search(r'\byoutu.be\b', values[0]):
video = YouTube(values[0])
YouTube(values[0]).streams.filter(res="1080p").first().download(output_path="C:/Users/%UserProfile%/Desktop")
sg.popup('You downloaded: ', video.title)
else:
sg.popup('This is not a Youtube link, please try again ')
window.close()
字符串被解释为文字。它不会改变。 %UserProfile%
- 这将是 cmd 上的环境变量 - 未被解释(正如您可能猜到的那样)。
解决方案是使用 os.environ
或 os.getenv
(您必须使用 import os
模块),这会保留当前环境中的所有变量:
output_path=f"{os.environ['UserProfile']}/Desktop"
此外,os.environ['UserProfile']
returns 用户目录的完整路径,因此不需要前缀 C:/Users/
。
我的 pytube 输出路径有问题,当我将 output_path 设置为 C:/Users/%UserProfile%/Desktop 视频停止下载时,代码有什么问题?
import PySimpleGUI as sg
import re
from pytube import YouTube
sg.theme('Dark')
layout = [
[sg.Text('Enter Youtube video link'), sg.InputText()],
[sg.Button('Download'), sg.Button('Cancel')]]
# Create the Window
window = sg.Window('Youtube Downloader', layout)
# Event Loop to process "events" and get the "values" of the inputs
while True:
event, values = window.read()
if event == sg.WIN_CLOSED or event == 'Cancel': # if user closes window or clicks cancel
break
if re.search(r'\byoutube.com\b', values[0]) or re.search(r'\byoutu.be\b', values[0]):
video = YouTube(values[0])
YouTube(values[0]).streams.filter(res="1080p").first().download(output_path="C:/Users/%UserProfile%/Desktop")
sg.popup('You downloaded: ', video.title)
else:
sg.popup('This is not a Youtube link, please try again ')
window.close()
字符串被解释为文字。它不会改变。 %UserProfile%
- 这将是 cmd 上的环境变量 - 未被解释(正如您可能猜到的那样)。
解决方案是使用 os.environ
或 os.getenv
(您必须使用 import os
模块),这会保留当前环境中的所有变量:
output_path=f"{os.environ['UserProfile']}/Desktop"
此外,os.environ['UserProfile']
returns 用户目录的完整路径,因此不需要前缀 C:/Users/
。