如何检查文本文件中的整数?

2024-04-28 02:26:41 发布

您现在位置:Python中文网/ 问答频道 /正文

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


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


我尝试了很多不同的方法,比如:

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

但在这种情况下,字符串\u-to\u搜索不能是整数


Tags: to数据方法nameinobjreadsearch
2条回答

在您的示例中,可以使用str()string_to_searchint转换为其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,则它将无效

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

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

请注意,如果您的文件有类似“12345”的行,那么这种方法就不适用,因为'123' in '12345'是真的。您可以通过使用更严格的检查(而不仅仅是in)来解决这个问题

  1. 如果您知道文件中的所有行都是数字,则可以在使用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

如果您计划进行几次这样的检查,那么一次将整个文件读入一个列表,然后检查列表中的目标可能是有意义的

相关问题 更多 >