首页 > 解决方案 > 在带有句子的字符串列表中扫描“下载:”

问题描述

我有一个脚本可以获取我的互联网的下载和上传速度。现在我正在制作一个脚本,它从 txt 文件中收集所有下载数据,并将其平均,将其放入 excel 电子表格或其他东西中。问题是我无法找到扫描“下载:”的方法,因为字符串中还有下载数据。我希望能够使用 Download: 在其中获取所有字符串的索引,然后还可以获取数据。

我尝试使用 any() 来扫描单词,但意识到它只是告诉我元素是否在列表中,并且它只检查整个单词“下载:”是否作为字符串在列表中。

downloads_string = "Download: "
with open("file.txt", "r") as file:
    file.readlines()
    data_downloads_list = any(element in downloads_string for element in file)
    print(data_downloads_list)

我希望得到真实的结果,但即使我在我的 txt 文件中有 Download: ,也总是得到错误的结果。我意识到它正在扫描只是“下载:”的字符串,而不是包含单词和数据的字符串。

标签: pythonstringlist

解决方案


file.readlines()将文件的行读入一个列表,因为它从来没有分配给任何东西,只是被垃圾收集......你也得到了反转的逻辑(你试图检查你的行是否在你正在寻找的字符串中- 如果您要查找的字符串在该行中,则不是),请尝试:

downloads_string = 'Download: '
with open('file.txt') as file:
    data_downloads_list = [line for line in file if downloads_string in line]
    print(data_downloads_list)

推荐阅读