Попытка перенести выходные данные из нескольких скриптов Python в SQLite3 - PullRequest
0 голосов
/ 05 января 2019

Я запускаю 12 различных скриптов Python одновременно, чтобы проверять по заданным критериям тысячи точек данных каждый час.

Я бы хотел сохранить выходные данные в «мастер-файл CSV», но решил, что вместо этого лучше поместить данные в SQLite3, так как я был бы перегружен файлами CSV.

Я пытаюсь перенести вывод прямо в SQLite3.

Пока это мой сценарий:

    symbol = []

    with open(r'c:\\Users\\Desktop\\Results.csv') as f: 
        for line in f:
            symbol.append(line.strip())
    f.close

    path_out = (r'c:\\Users\\Desktop\\Results.csv')

    i=0

1 Ответ

0 голосов
/ 06 января 2019

Хотя вы можете использовать базу данных sqlite одновременно , это может значительно замедлить ваши процессы.

Когда программа хочет записать в файл базы данных, вся база данных должна быть заблокирована :

Когда SQLite пытается получить доступ к файлу, заблокированному другим процессом, по умолчанию возвращается SQLITE_BUSY.

Таким образом, вы можете получить более одного из двенадцати процессов, ожидающих, пока база данных станет доступной, потому что один из них пишет.

По сути, одновременный доступ для чтения / записи - это то, для чего созданы клиент-серверные базы данных, такие как PostgreSQL. Это не основной вариант использования sqlite.

Так что, по моему мнению, двенадцать программ пишут отдельный CSV-файл и объединяют их позже, вероятно, не такой уж плохой выбор. Во всяком случае, это гораздо проще, чем настроить сервер PostgreSQL.

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