@LakeForest

Как несколькими потоками читать файлы на питоне? Как ускорить следующий код?

В столбце text вместо текста - пути к файлам с текстом, я хочу все тексты переписать в csv, но файлов очень много. Код обрабатывается дольше суток и до сих пор только 70%. Пишет, что примерно еще 12 часов ждать. Очень хочется ускорить, но плохо представляю, что с этим можно сделать...
c = 0
for i, row in tqdm(df_new.iterrows(), total=df_new.shape[0]):
    if "texts" not in row.text:
        continue
    c += 1
    with open("../../" + row.text, "r") as f:
        text = f.readline()
        df_new.loc[i, "text"] = text.replace("\n", "")
        if c % 10000 == 0:
            df_new.to_csv("df_all.csv", index=False)
df_new.to_csv("df_all.csv", index=False)
  • Вопрос задан
  • 153 просмотра
Пригласить эксперта
Ответы на вопрос 1
Vindicar
@Vindicar
RTFM!
Несколько потоков тут вряд ли помогут из-за особенностей питона.
Несколько процессов - возможно (модуль multiprocessing).
Но вообще для начала стоит убедиться, что затык именно по CPU, а не по производительности диска.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы