首页 > 解决方案 > 如何将此列表保存到 Python 中的文本文件

问题描述

import urllib.request
import re
import json
import csv
x = 4
search_keyword = input("Enter the keyword ")
html = urllib.request.urlopen("https://www.youtube.com/results? 
search_query=" + search_keyword + "&sp=EgIIAQ%253D%253D")
video_ids = re.findall(r"watch\?v=(\S{11})", html.read().decode())
for i in video_ids:
    print("https://www.youtube.com/watch?v=" + i, end = ' ')

我是 Python 新手,最近发现了一个教程如何在 Python 中查找 YouTube 链接,我想将链接列表保存到文本文件中,但它给了我一个错误:

TypeError:“NoneType”对象不可迭代

标签: pythonre

解决方案


看起来您想将视频链接写入文本文件,但我注意到您正在导入csv模块(从技术上讲,您在这里不需要)

为了避免类型错误,以防您的对象是None您可以显式构建视频链接列表:

video_urls = ['https://www.youtube.com/watch?v=' + i for i in video_ids or []]

请注意该video_ids or []部分是在video_ids对象本身的情况下None

然后将其保存到输出文本文件:

with open('out1.txt', 'w') as out_file:
    out_file.write('\n'.join(video_urls))

使用 Python 3 使用该pathlib模块,它变得更加容易(这只是包装上述相同逻辑的快捷方式):

from pathlib import Path

Path('out2.txt').write_text('\n'.join(video_urls))

推荐阅读