# jupyter notebook
result = !python executable/parser.py {path_zip_file} # type: ignore
result = pd.read_json(result[0])
result.info()
# python script
def main():
path_to_file = Path(argv[1])
page_list = _open_zip_file(path_to_file)
result = run_parser(_worker, page_list)
stdout.write(result.to_json())
if __name__ == '__main__':
main()
Я немного соврал, оказывается я сохранял файл, а потом просто вызывал скрипт и передавал в него адрес к файлу.
По факту я использовал Pool из библиотеки multiprocessing
Кстати, нашел еще один вариант у себя, использования многопоточности в jupyter notebook.
from multiprocessing.dummy import Pool as ThreadPool
with ThreadPool(30) as pool:
workreturn = pool.map(_worker, l_b)
Я вообще искал как запустить асинхронность в jupyter, но так и не нашел способа.
Нашел этот вариант, он не сильно проигрывал асинхронному варианту на python. Возможно дело в api к которому я подрубался. В итоге не стал парится оставил такой вариант.
Не могу говорить по поводу скорости в первом варианте, все таки запись и чтение много времени съедает.
НО есть вариант, только я не тестил, так что смотри сам.
В библиотеки pandas есть методы, `read_clipboard()` и `to_clipboard()`, Эти методы позволяют читать и записывать в буфер обмена таблицы данных.
Я на постоянной основе использую его для перекидки таблиц из офиса туда и обратно, бери на заметку.
Я использовал вызов в jupytor notebook субпроцесс python файла, с передачей в него аргументов, и уже в нем многопроцессорной обработкой; результат возвращал в ноутбук через stdout.
Я немного соврал, оказывается я сохранял файл, а потом просто вызывал скрипт и передавал в него адрес к файлу.
По факту я использовал Pool из библиотеки multiprocessing
Кстати, нашел еще один вариант у себя, использования многопоточности в jupyter notebook.
Я вообще искал как запустить асинхронность в jupyter, но так и не нашел способа.
Нашел этот вариант, он не сильно проигрывал асинхронному варианту на python. Возможно дело в api к которому я подрубался. В итоге не стал парится оставил такой вариант.
Не могу говорить по поводу скорости в первом варианте, все таки запись и чтение много времени съедает.
НО есть вариант, только я не тестил, так что смотри сам.
В библиотеки pandas есть методы, `read_clipboard()` и `to_clipboard()`, Эти методы позволяют читать и записывать в буфер обмена таблицы данных.
Я на постоянной основе использую его для перекидки таблиц из офиса туда и обратно, бери на заметку.
Доброго дня.
Я использовал вызов в jupytor notebook субпроцесс python файла, с передачей в него аргументов, и уже в нем многопроцессорной обработкой; результат возвращал в ноутбук через stdout.
Более громозко, чем у Вас.