【发布时间】:2023-02-08 04:01:15
【问题描述】:
PSA:Python 学习者(30 天,还在增加)。 我正在尝试创建一个 python 脚本,它创建一个视频播放列表,这些视频是从给定文件夹/子文件夹中随机选择的。当我运行它时,我在脚本的第 40 行(在“#create a VLC playlist in select folder”部分)出现“'selected_files' is not defined”错误,当我在全局范围内明确定义它时......我思考。欢迎协助。
import os
import random
def find_files(folder, extensions):
files = []
for root, dirs, filenames in os.walk(folder):
for filename in filenames:
if any(filename.endswith(ext) for ext in extensions):
files.append(os.path.join(root, filename))
return files
def main():
global selected_files
# specify the folders to search and the file extensions to search for
folders = [r"path\to\show1", r"path\to\show2", r"path\to\show3", r"path\to\show4"]
extensions = (".mp4", ".avi", ".mkv")
selected_files = []
for folder in folders:
files = find_files(folder, extensions)
if files:
selected_files.append(random.choice(files))
else:
print(f"No files found in {folder}.")
if not selected_files:
print("No files found.")
return
# create a VLC playlist in select folder
playlist_folder = r"path\where\playlist\is\saved"
if not os.path.exists(playlist_folder):
os.makedirs(playlist_folder)
playlist_file = os.path.join(playlist_folder, "PMTV.xspf")
with open(playlist_file, "w", encoding='utf8') as f:
f.write('<?xml version="1.0" encoding="UTF-8"?>\n')
f.write('<playlist xmlns="http://xspf.org/ns/0/" xmlns:vlc="http://www.videolan.org/vlc/playlist/ns/0/" version="1">\n')
f.write('\t<title></title>\n')
f.write('\t<trackList>\n')
for file in selected_files:
f.write('\t\t<track>\n')
f.write(f'\t\t\t<location>{file}</location>\n')
f.write('\t\t\t<title></title>\n')
f.write('\t\t\t<duration></duration>\n')
f.write('\t\t\t<extension application="http://www.videolan.org/vlc/playlist/0">\n')
f.write('\t\t\t\t<vlc:id></vlc:id>\n')
f.write('\t\t\t</extension>\n')
f.write('\t\t</track>\n')
f.write('\t</trackList>\n')
f.write('</playlist>\n')
print(f"{len(selected_files)} files added to {playlist_file}")
if __name__ == "__main__":
main()
【问题讨论】:
-
你的意思是 block 1 sub def 3 where selected _files is defined?我希望这里的 selected_files 指的是我放在 def main () folders=["blah1....blah2....blah3...etc] 中的所有内容。
标签: python