Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
6 / 6 / 3
Регистрация: 10.12.2013
Сообщений: 116

Найти строку, которая начинается числом в диапазоне от 0 до 255

13.05.2018, 01:35. Показов 2459. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
всем привет,
есть строки в файле которые начинаются с ip adress как провести поиск по файлу чтоб при совпадении с первыми цифрами в строке, можно было вывести их на экран

вот как я думал сделать

Python
1
2
3
4
5
6
7
ip = range(255)
 
def get_file():
    with io.open("file", encoding='utf-8') as file:
           for line in file:
             if ip in line:
                print(line)
но ругается на тип данных range, да и ip только в начале строки, числа со всего файла мне не нужны
спасибо
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
13.05.2018, 01:35
Ответы с готовыми решениями:

Альтернатива сканированию портов в диапазоне 0-255.0-255.0-255.0-255 для определения адреса хоста
Доброго времени суток. Есть IP - камера, которая настроена в неизвестной сети/подсети. Компьютер находится в сети с номером...

Найти строку в файле, которая начинается с заданной буквы
Помогите, пожалуйста, разобраться с такой задачей: Имеется текстовый файл. Выяснить, имеется ли в нем строка, начинающаяся с буквы «t»....

Найти строку массива которая начинается с нуля и поменять ее в обратном порядке
Есть двумерный массив, он задается рандомно, число строк и столбцов задает пользователь. Нужно найти строку которая начинается с нуля и...

10
24 / 18 / 9
Регистрация: 27.04.2017
Сообщений: 122
13.05.2018, 01:51
функция range возвращает iterable объект, а не список

а даже если обернуть результат в список (через функцию list), то всё равно в 6-ой строчке никак нельзя проверять вхождение списка целых чисел 0-244 в строку.
0
76 / 50 / 26
Регистрация: 22.02.2015
Сообщений: 306
13.05.2018, 02:14
Python
1
2
3
4
5
6
7
8
9
10
11
12
s = """
127.0.0.1 hello world
        212.421.511.522
999.999.999.99
python 231.21.52.16
test
""".split('\n')
 
for l in s:
    p = l.find('.')
    if p != -1 and l[:p].lstrip().isdigit() and 0 <= int(l[:p]) <= 255:
        print(l)
0
24 / 18 / 9
Регистрация: 27.04.2017
Сообщений: 122
13.05.2018, 02:23
придумал вот такое (наверно не оптимальное) решение

Python
1
2
3
4
5
6
7
8
9
10
ip_range = list(range(255))
 
for line in open('pythonfile.txt'):
    new_line = line.split('.')
    try:
        int(new_line[0])
    except ValueError:
        continue
    if int(new_line[0]) in ip_range:
        print(line)
0
963 / 718 / 276
Регистрация: 10.12.2016
Сообщений: 1,764
14.05.2018, 09:12
Python
1
2
3
4
5
6
7
for line in open('pythonfile.txt'):
    new_line = line.strip().split('.')
    try:
        if  0 <= int(new_line[0]) <= 255:
            print(line)
    except: 
        pass
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7392 / 4819 / 1246
Регистрация: 30.03.2015
Сообщений: 13,694
Записей в блоге: 29
14.05.2018, 09:49
Merser5, все пытаются сразу искать точку, а ее может не быть, кроме того задание найти любую строку начинающуюся с числа от 0 до 255
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
import string
 
 
def get_start_number(text):
    index = 0
    while text[index] in string.digits:
        index += 1
    return int(text[:index]) if index > 0 else -1
 
 
with open('test.txt') as file:
    for line in file.readlines():
        if 0 <= get_start_number(line) <= 255:
            print(line.strip())
0
963 / 718 / 276
Регистрация: 10.12.2016
Сообщений: 1,764
14.05.2018, 14:48
Welemir1,
Цитата Сообщение от Merser5 Посмотреть сообщение
есть строки в файле которые начинаются с ip adress
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7392 / 4819 / 1246
Регистрация: 30.03.2015
Сообщений: 13,694
Записей в блоге: 29
14.05.2018, 16:17
vic5710, по моему это означает что есть и те строки, которые не начинаются с ip адреса)
0
 Аватар для clipper1995
12 / 12 / 9
Регистрация: 19.03.2018
Сообщений: 48
14.05.2018, 17:44
Для четырех цифр от 0 до 255, разделенных точкой:

Python
1
2
3
4
5
import re
with open('mytimer.py') as file:
    for line in file.readlines():
        if re.match(r'^((\d{1,2}|1\d\d|2[0-5][0-5])\.){3}(\d{1,2}|1\d\d|2[0-5][0-5]).*', line):
            print(line.strip())
Все строки, начинающиеся с 255:

Python
1
2
3
4
5
import re
with open('mytimer.py') as file:
    for line in file.readlines():
        if re.match(r'^((\d{1,2}|1\d\d|2[0-5][0-5])).*', line):
            print(line.strip())
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7392 / 4819 / 1246
Регистрация: 30.03.2015
Сообщений: 13,694
Записей в блоге: 29
14.05.2018, 19:31
clipper1995, первый вариант норм, второй пишет строки, которые начинаются с любого числа
0
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
14.05.2018, 19:46
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
import io
import socket
 
f = io.StringIO("""
127.0.0.1 hello world
bla-bla-bla
212.421.511.522
bla-bla-bla
999.999.999.99
231.21.52.16
bla-bla-bla
""")
 
# имитация чтения из файла
for line in f:
    try:
        ip = line.split()[0]
        socket.inet_aton(ip)
    except:
        pass
    else:
        print(line.strip())
Из поста ТС непонятно, что именно он хочет выводить: только ip или всю строку - поэтому выводится вся строка.
Если нужно все-таки только ip - print(ip).
Пример гарантированно выводит только валидные ip адреса.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
14.05.2018, 19:46
Помогаю со студенческими работами здесь

421 cannot connect to SMPT server 255.255.255.255 (255.255.255.255:25)
Добрый день! при вызове bool mSocket::Connect(int port,char* adr) { hostent* hn; if (0==(hn = gethostbyname...

Написать программу, которая выводит двоичное представление введенного с клавиатуры числа в диапазоне от 0 до 255
написать программу, которая выводит двоичное представление введенного с клавиатуры десятичного целого числа в диапазоне от 0 до 255 VBA ...

Массив: Вычислить сумму элементов, лежащих на главной диагонали матрицы {Cÿ}, образованной следующим образом: Cÿ = aÿ + bÿ
Здравствуйте, дорогие форумчане!;) -------------------------------------- Помогите, пожалуйста, решить задание. ...

Удалить строку, которая начинается с определенного слова
Необходимо макросом удалить строку, которая начинается с определенного слова.

Напишите программу, которая заполняет массив из N элементов случайным целым числом. числа в диапазоне [A, B]
Напишите программу, которая заполняет массив из N элементов случайным целым числом. числа в диапазоне и определяет максимум среди четных...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Функция заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию. 2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru