для выполнения цикла - PullRequest
       4

для выполнения цикла

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

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

Любая идея относительно того, как это сделать вpython?

следующий код:

with open('E:\marr.txt') as f:
    content = f.readlines()
content = [x.strip() for x in content]
with open('E:\prlist.txt') as f:
    content1 = f.readlines()
content1 = [x.strip() for x in content1]
with open('E:\Master\master1.csv', 'a') as f:
    headers = ("Source Link,Company Link,company name")
    f.write(headers)
    f.write("\n")
    for ip in content1:
        chrome_options.add_argument('--proxy-server=%s' % ip)
        try:
            for link in content:

                    try:
                        browser.get(link)
                        browser.implicitly_wait(4)
                        abba = browser.find_element_by_css_selector('.WebToolsetToolWebPart_Cntnr.WebToolsetToolWebPart_Aligned_LEFT.WebToolsetToolWebPart_TxtTool_Cntnr')
                        aas = abba.text
                        aa = aas.replace(",","")
                        print(ip + "," + link + "," + aa)
                        f.write(link + "," +aa+"\n")

                    except NoSuchElementException:
                        aa = "no count available"
                        print(ip + ","+link + "," + aa)
                        f.write(link + "," + aa + "\n")
        except StaleElementReferenceException:
            pass

1 Ответ

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

сохранить индекс внутреннего цикла, если ошибка продолжится, см. currentIndex, как она работает.

with open('E:\Master\master1.csv', 'a') as f:
    headers = ("Source Link,Company Link,company name")
    f.write(headers)
    f.write("\n")

    currentIndex = 0
    for ip in content1:
        chrome_options.add_argument('--proxy-server=%s' % ip)
        try:
            for link in content[currentIndex:]: # start from 0 or continue from last index error
                try:
                    browser.get(link)
                    browser.implicitly_wait(4)
                    abba = browser.find_element_by_css_selector('.WebToolsetToolWebPart_Cntnr.WebToolsetToolWebPart_Aligned_LEFT.WebToolsetToolWebPart_TxtTool_Cntnr')
                    aas = abba.text
                    aa = aas.replace(",","")
                    print(ip + "," + link + "," + aa)
                    f.write(link + "," +aa+"\n")

                except NoSuchElementException:
                    aa = "no count available"
                    print(ip + ","+link + "," + aa)
                    f.write(link + "," + aa + "\n")
                    break # stop this inner loop and continue outer loop

                # current loop is good save the next index
                currentIndex += 1

            # if it last index of "content", reset the index <- minor fix
            if currentIndex == len(content) - 1:
                currentIndex = 0

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