【问题标题】:Searching text file for string only on single line仅在单行上搜索文本文件中的字符串
【发布时间】:2020-07-13 19:50:01
【问题描述】:

在我的程序中,我在一个单独的文本文件中有一个 id 编号列表,每行一个 id。我正在使用 if 语句来搜索以查看指定的 id 号是否已经在文本文件中。虽然机会很小,但我想实现一些东西来防止它找到包含在多行中的字符串。问题:如何确保搜索 id = 11223 会产生第 3 行而不是第 1/2 行的结果?包括下面的一个简单示例 - 这是新的,因此非常感谢任何其他提示,谢谢!

searching_for_id = "11223"
id_list = open('id_nums.txt', 'a+')

if searching_for_id not in open('tweet_id.txt').read():
    print("Adding to list")
    id_list.write("\nNew id")
else:
    print("Already in list")

示例 id.txt 文件

1238311

2235869

1211223


旁注:大多数数字不在文本文件中,因此 not 语句是“真实”结果。不确定这是否是不好的编码习惯,但认为让大部分程序转到 else 语句会花费更长的时间?

【问题讨论】:

  • 我的解决方案是否回答了您的问题?如果没有,请告诉我。如果有,请接受答案。

标签: python-3.x search text


【解决方案1】:

读取文件并将其转换为整数列表可能更容易,然后检查给定的 id 是否已经存在。

file_ids = [int(line) for line in open('tweet_id.txt').readlines()]

现在你可以放心地做:

if searching_for_id in file_ids:
   print("id already exists in file")
else:
   print("id doesn't exist in file")

【讨论】:

    猜你喜欢
    • 2019-10-24
    • 1970-01-01
    • 1970-01-01
    • 2016-06-04
    • 2010-12-10
    • 1970-01-01
    • 1970-01-01
    • 2011-12-12
    相关资源
    最近更新 更多