python - 关闭嵌套文本文件,并从嵌套文本文件中剪切行
问题描述
for h3 in soup.find_all('a'):
print((str(h3.text)),file=open("demo.txt", "a"))
上面是我用于抓取网站的代码行。我正在使用漂亮的汤和硒来抓取网站。它为所有“a”标签说明的第一行是soup find all。然后打印这些 a 标签的文本并打印到文件 demo.txt 中。
出于某种原因,我必须添加“a”,附加,才能打印出整个文本。使用“w”它只打印一行。我正在寻找一种关闭 demo.txt 文件的方法,以便它不断地追加到同一个文件中。
这也有助于学习如何从文本文件中剪切某些行。即文本文件可能有 750-1000 行,因此剪切命令 (2-5, 94-100) 将非常有帮助。
提前致谢
解决方案
将打印一行,因为每次他发现你说要搜索的内容时都会打开该文件并将其写入。当我们谈论文件上的单词时,计算机不知道“删除”这个词=]]所以对他来说,无论这个文件上有什么(如果该文件不存在将创建它)将从头开始并写入它再次。因此,a正在为您工作。
try:
with open(file="demo.txt", mode="w", encoding="utf-8") as file:
for h3 in soup.find_all('a'):
file.write(str(h3.text))
finally:
file.close()
对于那些删除行,我认为你不想要一些信息,所以检查你不想要什么并在里面做另一个 if 语句。
...
for h3 in soup.find_all('a'):
if stringA in h3.text or stringB in h3.text:
pass
else:
file.write(str(h3.text))
...
推荐阅读
- python - 如何在 Python 中获取解析为列表/字典的 JSON 服务器响应的详细信息
- javascript - 如何映射 ListIem 响应值
- python - 在 PyPlot 子图中设置 Seaborn 中的图形大小
- android - 为什么我在尝试删除某些内容时不断从 Firebase 获取重复数据?
- php - 为什么循环打印错误的值?
- elasticsearch - OpenJDK 64 位服务器 VM 警告 Elasticsearch 在 Windows 10 中不起作用
- algorithm - 算法设计:你能提供一个没有最大重量限制的背包问题的解决方案吗?
- c# - 如何做一个半圆形运动?
- python - 为 Plotly 不工作创建 choropleth 函数
- c - 如何在 X% 的时间内从传入的随机数流中进行选择?