Найти - Пользователи
Полная версия: Как ускорить код? Numba?
Начало » Python для новичков » Как ускорить код? Numba?
1
tref
Подскажите как можно ускорить код? TXT файлы весят 20MB, python долго считывает их.

Пытался через библиотеку ‘Numba’, но слишком много действий для jit'a и выполнение завершается.
 import requests
import random
from numba import njit, cuda 
filenames = ['input7.txt', 'input8.txt']
def run():
	try:
		while 5 > 1:
			browser = 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) ' +\
				'AppleWebKit/537.36 (KHTML, like Gecko) ' +\
				'Chrome/71.0.3578.98 Safari/537.36'
			headers = {'User-Agent': browser}
			pageNum1 = random.randrange(1,1000000)
			pageNum2 = random.randrange(1,1000000)
			fullurl = ['http://localhost/'+str(pageNum1),'http://localhost/'+str(pageNum2)]
			for url in fullurl:
				html = requests.get(url=url, headers=headers).text
				print (url)
				for filename in filenames:
					with open(filename) as f:
						for line in f:
							if line.rstrip() in html:
								print(f'Find "{line}" on the page {url}')
								with open('find.txt', 'a') as appendFile:
									appendFile.write('{}\n'.format(url))
									appendFile.write('{}\n'.format(line))
								return
								
	except (ValueError):
		print ("Break")
		
run()
py.user.next
Чтобы ускорить код, можно попробовать ускорить поиск. Полученную страницу можно преобразовать в бинарное дерево один раз и потом каждую строку из файла искать в бинарном дереве.

Сейчас строка файла ищется даже там, где её заведомо нет - то есть сразу можно определить, что там нет строки. И вот на это уходит время.
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