python - 如何将此列表保存到 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”对象不可迭代
解决方案
看起来您想将视频链接写入文本文件,但我注意到您正在导入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))
推荐阅读
- reactjs - 在另一个 prop reactJS 中使用 prop 值
- gitlab - GitLab 管道中的条件自动重试
- android - phonegap build android => 找不到带有 android 7.0.0 的 apk
- javascript - 将数据从 laravel 传递到刀片视图中的组件
- pg-promise - 批量插入不存在的记录,返回 ID
- html - Angular JS 协助添加值和小数
- c# - 交叉绑定复选框 - isChecked #1 -> isEnabled #2
- c - 我的终端只打印 main 的第一个输出
- r - rmarkdown data.table 编译后绘图不匹配
- string - 在 IDL 中连接字符串和整数时出现错误的空格