Continuing where I left off Python

infinite generator python
generators in python
imperative programming in python
fp in python
python lrm
pure function python
data generator python
python functional or oop

I have a bunch of list of links which I'm doing a specific function on each link, the function takes about 25 sec, I use selenium to open each and get the page source of it then do my function, however whenever I build the program and cancel the build, I will have to start all over again.

Note:I get links from different webs sitemap.

Is there a way to save my progress and continue it later on?

this code will work. I assume you already have a function got getting links. I have just used a dummy one _get_links. You will have to delete the content of links file and need to put 0 in index file after every successful run.

import time

def _get_links():
    return ["a", "b", "c"]

def _get_links_from_file():
    with open("links") as file:
        return file.read().split(",")


def _do_something(link):
    print(link)
    time.sleep(30)

def _save_links_to_file(links):
    with open("links", "w") as file:
        file.write(",".join(links))
    print("links saved")

def _save_index_to_file(index):
    with open("index", "w") as file:
        file.write(str(index))
    print("index saved")

def _get_index_from_file():
    with open("index",) as file:
        return int(file.read().strip())


def process_links():
    links=_get_links_from_file()
    if len(links) == 0:
        links = _get_links()
        _save_links_to_file(links)
    else:
        links = _get_links_from_file()[_get_index_from_file():]


    for index, link in enumerate(links):
        _do_something(link)
        _save_index_to_file(index+1)

if __name__ == '__main__':
    process_links()

list - Continuing where I left off Python, "is there a way to save my progress and continue it later on?" Yes, there is a way. On solution is to save your progress in a file. – Code-Apprentice Jan 25 at 17:  I'm still new to writing scripts with Python and would really appreciate some guidance. I'm wondering how to continue executing my Python script from where it left off after a system restart. The script essentially alternates between restarting and executing a task for example: restart the system, open an application and execute a task, restart

I would suggest that you write out the links to a file along with a date/time stamp of the last time it was processed. When you write links to the file, you will want to make sure that you don't write the same link twice. You will also want to date/time stamp a link after you are done processing it.

Once you have this list, when the script is started you read the entire list and start processing links that haven't been processed in X days (or whatever your criteria is).

Steps:

  1. Load links file
  2. Scrape links from sitemap, compare to existing links from file, write any new links to file
  3. Find the first link that hasn't been processed in X days
  4. Process that link then write date/time stamp next to link, e.g.

    http://www.google.com,1/25/2019 12:00PM
    
  5. Go back to Step 3

Now any time you kill the run, the process will pick up where you left off.

NOTE: Just writing out the date may be enough. It just depends on how often you want to refresh your list (hourly, etc.) or if you want that much detail.

Python course, Python course - how do i start where i left off yesterday?? I click the continue (37 %) button and it sends me to the beginning of the course , i can't see where i can   Continuing where I left off on the last video, I finished the tip calculator and implemented Input Validation. If you have any questions about how I did things or have any feedback, let me know.

You should save the links in a text file. You should also save the index numbers in another text file, probably initializing with 0.

In your code, you can then loop through the links using something like:

for link in links[index_number:]

At the end of every loop, add the index number to the text file holding the index numbers. This would help you continue from where you left off.

Dive Into Python, Chapter 9, XML Processing: This chapter covers Python's built-in XML Chapter 14, Test-First Programming: Continuing where Chapter 13 left off, this chapter  Raising an exception during for loop and continuing at next index in python. Ask Question then raise it during an iteration and continue where I left off.

Hands-On Penetration Testing with Python: Enhance your ethical , In other words, a Python generator is a function that returns us a generator a control to the caller and then continues its execution right from where it left off. So, continuing where I left off, I’m going to use Biopython to use the multiple sequence alignment software, MUSCLE, to create my MSA. Biopython, the Python library for bioinformatics, has several tools for manipulating and building sequence alignments. The Bio.AlignIO and the Bio.Align modules contain these tools. You can read and write

Professional Python, Now, issue next(gen) again, as shown here: >>> next(gen) 1 Execution picks up where it left off, which means the first thing to run is the t continue statement. def  Make Microsoft Edge to Continue where you left off Using Edge Settings: Open Edge Browser from start menu or Cortana search. Click on the three dot menu from the Top right corner to open Edge menu setting. Then click on settings. Then click on On startup and choose Continue Where you left off.

Python: Real-World Data Science, When Python sees yield in a function, it takes that function and wraps it up in an it will start where it left off―on the line after the yield statement―instead of at the the generator will simply pick up at the most recent yield and continue to the  Disable all extensions and check if Continue where you left off feature is working or not. Open menu and select Extensions under More tools. You will disable all extensions here and re-enable them one at a time to see which one is breaking Chrome. You can’t use the Incognito mode here because Continue, where you left off, doesn’t work in it.

Comments
  • "is there a way to save my progress and continue it later on?" Yes, there is a way. On solution is to save your progress in a file.
  • Of course there is. Python is essentially a Turing complete language. One possible way involves persisting to a file.
  • @Code-Apprentice. I didn't see your comment when I was posting mine :)
  • What exactly do you mean by ...I build the program and cancel the build...? Till Selenium takes over the control you can do it as commented by @Code-Apprentice But once Selenium takes over you can't.
  • The OP will probably need to save more than just an index. The list itself will no longer exist after the program terminates which will render the indexes meaningless.
  • do you mean writing the links in seperate file and save index number of where i left of on that file then crawl back that file ?
  • If you can save the links in a different file and also the index number, it would be great. This way, you do not have to read the sitemap always.
  • @Code-Apprentice If he saves the links in a file, the indexes would be useful.
  • yes, exactly. Saving the list of links will help, too. You should edit your answer to add that detail.