如何检查文本文件中的整数? [复制]

Posted

技术标签:

【中文标题】如何检查文本文件中的整数? [复制]【英文标题】:How do I check for an integer in a text file? [duplicate] 【发布时间】:2021-05-03 01:17:55 【问题描述】:

我有一个文本文件来保存数据 例如,我在文本文件中放了很多数字


如何检查给定的数字是否已经存在于文本文件中??


我尝试了许多不同的方法,例如:

def check_if_string_in_file(file_name, string_to_search):
    with open(file_name, 'r') as read_obj:
        for line in read_obj:
            if string_to_search in line:
                return True
    return False

但在这种情况下 string_to_search 不能是整数

【问题讨论】:

***.com/questions/961632/… 【参考方案1】:

在您的示例中,string_to_search 可以使用 str()int 转换为 str 表示:

def check_if_string_in_file(file_name, string_to_search):
    with open(file_name, 'r') as read_obj:
        for line in read_obj:
            if str(string_to_search) in line:
                return True
    return False

如果string_to_search 已经是str,则无效。

【讨论】:

【参考方案2】:

您的方法是一个很好的起点。根据您正在阅读的文件类型及其内容(未指定),有几种方法可能有效:

    在使用整数值调用函数之前,将其转换为带有str 的字符串:
check_if_string_in_file(file_name, str(123))

请注意,如果出现这种情况,这种方法就会失败。你的文件有一行像“12345”,因为'123' in '12345' 是真的。您可以通过使用更严格的检查(而不仅仅是 in)来解决此问题。

    如果您知道文件中的所有行都只是数字,您可以在读取后使用int 函数将该行转换为数字:
def check_if_string_in_file(file_name, number_to_search):
    with open(file_name, 'r') as read_obj:
        for line in read_obj:
            line_as_int = int(line.strip())
            if number_to_search == line_as_int:
                return True
    return False

如果您打算进行多次此类检查,最好一次性将整个文件读入一个列表,然后检查列表中的目标。

【讨论】:

以上是关于如何检查文本文件中的整数? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

如何在 C# 中读取文本文件中的多行? [复制]

如何在 C# 中读取文本文件中的多行? [复制]

如何通过 django 代码从我的 linux pc 识别文本文件而不检查其扩展名和文件大小? [复制]

如何将文本文件中的数据复制到剪贴板? [复制]

如何确定文件是c#中的二进制文件还是文本文件? [复制]

如何在java中将文本添加到文本文件中? [复制]