Уведомления

Группа в Telegram: @pythonsu

#1 Ноя. 19, 2016 12:53:37

remvord
Зарегистрирован: 2016-11-19
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

Подстрока в строке - поиск и переменная

Добрый день.
Не являюсь программистом в чистом виде (сисадмин) - появилась небольшая задачка.
Необходимо автоматизировать небольшой процесс.
Есть файл - в нем строка 42 - нужно открыть ее - сравнить со значением (подстрока) и вывести сообщение.
Это та часть с которой не смог справиться…
попытался создать функцию но не могу понять как подстроку substring_new = “KMC_ID=111” сравнить с lines …

def fun_id ():
f = open('c:/Python/test/KeyObjects.xml', 'r')
lines = f.readlines()
lines[42] = ln
if substring_new in ln:
print('YES')
else:
print('NO')

Сама задача полностью была следующая - оператор должен перевести комплекс с одного id на другой
Программа предлагает это сделать, путем ввода цифр - 1 или 2 (это сделал)
Но при новом запуске хотелось бы понимать а на каком id варианте сейчас находится комплекс?
если есть варианты - подскажите - буду благодарен )
вот то что наваял…что есть…

 # coding: utf-8 
import time
#задержка
delay = 3
# исходная строка
string_new = '            <SCPE:SecureChannel DiversificationType="NONE" DiversificationType_SessionKey="SCP02" KMC_ID="111" keyset_id="0" keyset_ver="0" />' + '\n'
string_old = '            <SCPE:SecureChannel DiversificationType="NONE" DiversificationType_SessionKey="SCP02" KMC_ID="222" keyset_id="0" keyset_ver="0" />' + '\n'
# подстрока, которая явно входит в исходную строку
substring_new = "KMC_ID=111"
#создаю переменную для строки 42 ....и не помогает...
ln = ''
def fun_id ():
    fo = open('c:/Python/test/KeyObjects.xml', 'r')
    lines = f.readlines()
    lines[42] = ln
if substring_new in ln:
    print('YES')
else:
    print('NO')
       
     
def fun_new ():
    f = open('c:/Python/test/KeyObjects.xml', 'r')
    lines = f.readlines()
    lines[42] = string_new
    lines[46] = string_new
    save_changes = open('c:/Python/test/KeyObjects.xml', 'w')
    save_changes.writelines(lines)
    print("Комплекс настроен на НОВЫЕ id")
    time.sleep(delay)
    
def fun_old ():
    f = open('c:/Python/test/KeyObjects.xml', 'r')
    lines = f.readlines()
    lines[42] = string_old
    lines[46] = string_old
    save_changes = open('c:/Python/test/KeyObjects.xml', 'w')
    save_changes.writelines(lines)
    print("Комплекс настроен на СТАРЫЕ id")
    time.sleep(delay)
answer = input("ИЗМЕНИТЬ НАСТРОЙКИ? (Y/N)")
if answer == 'Y':
    print(" [1] - НОВЫЕ  id")
    print(" [2] - СТАРЫЕ id")
    do = int(input("Укажите номер действия: "))
	
    if do == 1:
        fun_new()
        
    elif do == 2:
        fun_old()   
        
    else:
        pass
    
elif answer == 'N':    
    print("До свидания!")
else:
    print("Неизвестный ответ")    

Отредактировано remvord (Ноя. 19, 2016 13:04:44)

Офлайн

#2 Ноя. 19, 2016 13:08:26

Romissevd
От: Счастье
Зарегистрирован: 2015-03-01
Сообщения: 533
Репутация: +  76  -
Профиль   Отправить e-mail  

Подстрока в строке - поиск и переменная

Возможно вот так…

 def fun_id ():
    fo = open('c:/Python/test/KeyObjects.xml', 'r')
    lines = f.readlines()
    if substring_new == lines[42]:
        print('YES')
    else:
        print('NO')

Офлайн

#3 Ноя. 19, 2016 13:15:59

remvord
Зарегистрирован: 2016-11-19
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

Подстрока в строке - поиск и переменная

Romissevd
Возможно вот так…
опробовал - сообщение YES или NO - не выводится на экран вообще…

Офлайн

#4 Ноя. 19, 2016 13:24:58

remvord
Зарегистрирован: 2016-11-19
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

Подстрока в строке - поиск и переменная

Romissevd
Возможно вот так…
 def fun_id ():
    f = open('c:/Python/test/KeyObjects.xml', 'r')
    lines = f.readlines()
    if substring_new in lines[42]:
        print('Комлпекс на НОВЫХ id')
    else:
        print('Комлпекс на СТАРЫХ id')
вот так заработало - но как запустить функцию def fun_id ():
до ввода цифр - чтобы в консоли показывало на каких сейчас id комплекс?
третью кнопку не хотелось бы добавлять

Отредактировано remvord (Ноя. 19, 2016 13:25:24)

Офлайн

#5 Ноя. 19, 2016 13:32:55

remvord
Зарегистрирован: 2016-11-19
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

Подстрока в строке - поиск и переменная

remvord
всем спасибо решил вот так
 answer = input("ИЗМЕНИТЬ НАСТРОЙКИ? (Y/N)")
if answer == 'Y':
    print(" [1] - НОВЫЕ id")
    print(" [2] - СТАРЫЕ id")
    fun_id()

Отредактировано remvord (Ноя. 19, 2016 13:33:11)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version