Найти - Пользователи
Полная версия: Подстрока в строке - поиск и переменная
Начало » Python для новичков » Подстрока в строке - поиск и переменная
1
remvord
Добрый день.
Не являюсь программистом в чистом виде (сисадмин) - появилась небольшая задачка.
Необходимо автоматизировать небольшой процесс.
Есть файл - в нем строка 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("Неизвестный ответ")    
Romissevd
Возможно вот так…
 def fun_id ():
    fo = open('c:/Python/test/KeyObjects.xml', 'r')
    lines = f.readlines()
    if substring_new == lines[42]:
        print('YES')
    else:
        print('NO')
remvord
Romissevd
Возможно вот так…
опробовал - сообщение YES или NO - не выводится на экран вообще…
remvord
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
remvord
всем спасибо решил вот так
 answer = input("ИЗМЕНИТЬ НАСТРОЙКИ? (Y/N)")
if answer == 'Y':
    print(" [1] - НОВЫЕ id")
    print(" [2] - СТАРЫЕ id")
    fun_id()
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB