But sometimes I don't have enough time for reading, only 20-40 minutes a day are free.
Some novels are structured pretty good, and it usually takes 30+- 5 minutes to read a chapter. Other novels don't have such a good structure or separation by time periods and it takes 1 or 1.5 hour to finish a chapter of a novel.
So I decided to write a python script that would allow me to better understand how much time it would take to read some chapter of a book.
The script do the following:
1) Opens .txt file
2) Splits the file by chapter into separate chapters
3) Counts the number of words in a chapter and divides it by your reading speed (words per minute)
4) Sends to ToDoList the name of a chapter and 'time estimate'
HOW TO USE:
1.Create a new file - name.py
2. Copy and paste there the text below.
3. Make necessary changes in the script (see comments in the file)
4. Run and enjoy reading=).
Code: Select all
class BookParsing(): # self - path to the book def __init__(self,path,wpm=None, start=None, chapter_name = None): self.path = path self.wpm = wpm self.start = start self.chapter_name = chapter_name # return raw text def split_text (self, text=None, chapters_len = None): with open (self.path, 'r', encoding='utf8') as rawtext: openfile_germinal = rawtext.read() text_split = openfile_germinal.split(self.chapter_name) # replace \n listtoappend =  for one_chapter in text_split: listtoappend.append(one_chapter.replace("\n", '')) self.text = listtoappend self.chapters_len = len(self.text) def wpm_list (self): wpm_chapters_list =  # Start from chapter 1 # How many chapters are in the book? 45-30 - start from 15 for each in self.text[len(self.text)-self.start:]: round_me = round((len(each)/self.wpm), 2) wpm_chapters_list.append(round_me) return wpm_chapters_list ### Send to ToDoList def td_list_send(word_perminunte_list): for name,estimate in zip(range(1,len(word_perminunte_list)+1),word_perminunte_list): pathtotdl = "C:/PATH_TO_TDL/ToDoList.exe /$(seltid)" #### Path to your ToDoList variables1 = " -nt " variables2 = " -te " cmd = pathtotdl+variables1+str("Chapter_" + str(name))+variables2+str(estimate/60) sendcommand = os.system(cmd) sleep(0.5) from time import sleep import os # ARGUMENTS # 1 - The path to the file you want to read # 2 - WOrds per minute # 3 - Chapters in the book # 4 - The name of chapters (ususally,UPPERCASE) finn = BookParsing('HackFinn.txt', 800, 43, "CHAPTER ") # HackFinn.txt - the name of a book you want to parse #### Split text into a list Don't rename finn.split_text() #### Send to ToDoList # don't forget to replace the path to ToDoList to yours (pathtotdl - line 33) td_list_send(finn.wpm_list())