首页 > 解决方案 > 如何使用 python 仅将 URL 中的特定文本行保存到 txt 文件?

问题描述

到目前为止,我使用了 range 函数,该函数在我简单地打印从 URL 导入的行时起作用,但是当我尝试将它们保存到 txt 文件时,它只保存第 5 行(或范围的最后一个数字)。

target_url="random URL"
request = requests.get(target_url)
text=request.text
lines=text.split("\n")
for i in range(1, 5):
    savefile = open('c:/Users/ghostsIIV/Desktop/examplefile.txt', 'w')
    savefile.write(lines[i])
savefile.close()

标签: pythonurlsplitrange

解决方案


您在每次迭代时覆盖您的文件,清除之前的信息:

for i in range(1, 5):
    savefile = open('c:/Users/ghostsIIV/Desktop/examplefile.txt', 'w')
    savefile.write(lines[i])
savefile.close()

如果你想写五行,那么在你积累数据时让文件保持打开状态:

savefile = open('c:/Users/ghostsIIV/Desktop/examplefile.txt', 'w')
for i in range(1, 5):
    savefile.write(lines[i])
savefile.close()

这也是学习a(追加)模式的好时机。重复有关 Python 文件的教程以获取该信息。

更短,打开文件并写下你想要的四行:

with open('c:/Users/ghostsIIV/Desktop/examplefile.txt', 'w') as savefile:
    savefile.write('\n'.join(lines[1:5])

with退出块时关闭文件。


推荐阅读