python3 зацикливает список с 1 переменной за раз - PullRequest
0 голосов
/ 05 декабря 2018

все еще изучаю Python, поэтому я прошу прощения, если этот вопрос неаккуратный.

Я знаком с циклами и циклическим просмотром файла.Тем не менее, я не нашел правильной ссылки на зацикливание файла, сохранение переменной и вызов этой переменной в другую функцию, и поддерживать приращение.

Использование pyautogui и pywinauto.

Письменная форма:

get names.txt file with list of 20 or so names (the list changes so keeping track of line count seems reasonable) 
Split the text of the file for parsing. 

в примере:

настройка файла name.txt.

Mark
James
Sam
Steve

.

def do(name):
# open and read file
fname = 'names.txt'
for name in (open(fname, "r")).readlines():
    print("Found: " + name)
    more(name)

Вывод: ['Марк', 'Джеймс', 'Сэм', 'Стив]

def more(name):
    pyautogui.moveT0(600,511)
    pyautogui.click()
    pyautogui.typewrite(a[0])
    pyautogui.moveTo(699,412)
    pyautogui.press("enter")
    confirm(name)

def confirm(name)
    pic = pyscreenshot.grab(bbox=(8,11,211,728))
    f = "images/active"
    g = "images/go"
    pic.save(f + a + ".png")
    pic.save(g + ".png")
    b = Image.open("images/go.png"
    text = image_to_search(b, lang='eng')
    if text == name:
        print("Success")
    else:
        print("Mismatch")

Это частьгде функция завершится и начнется снова в верхней части программы, увеличивая нашу цифру и применяя следующее имя для поиска.Программа подтверждения (уже завершенная) берет изображение поля поиска и передает текст.Если имя равно имени в списке (a [0]), то мы переходим к следующему имени.

Еще один вопрос о том, как "вызвать переменную из функции"?

Большое спасибо!

1 Ответ

0 голосов
/ 06 декабря 2018

Прежде всего, ваш код изобилует отступами, синтаксическими и логическими ошибками, вы должны исправить их, прежде чем применять ниже

def file_stuff(a, fname):
    for name in (open(fname, "r")).readlines():
        print ("Found: " + name)
        gui_stuff(name)

def gui_stuff(name):
    pyautogui.moveT0(600,511)
    pyautogui.click()
    pyautogui.typewrite(name) # ATTENTION, please confirm if this is how the typewriter fn works. you are only printing the first char
    pyautogui.moveTo(699,412)
    pyautogui.press("enter")
    confirm(name)

Пожалуйста, исправьте отступ if-elseв вашей функции подтверждения и других висячих ссылках на отступы в вашем коде

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...