Процесс Python переходит в режим бесперебойного сна ⇐ Linux
Процесс Python переходит в режим бесперебойного сна
вот мой скрипт Python для обработки около 1 млн файлов, в основном для проверки существования этих файлов:
def check_data_valid(): data_root = "/data_alpha/data/video/internvid/" save_root = "/data_alpha/data/video/internvid/all_file_list/proc" download_list = "/data_alpha/data/video/internvid/all_file_list/all_files.txt" действительные_данные = [] err_data = [] отсутствующие_данные = [] с open(download_list, «r») как f: а = f.readlines() загрузки = [i.strip() для i в a] для i, элемент в перечислении (загрузки): файл = os.path.join(корень_данных, элемент) avi = file.replace(".mp4", ".avi") если os.path.exists(avi): valid_data.append(элемент) элиф os.path.exists(файл): err_data.append(элемент) еще: Missing_data.append(элемент) если (i) % 200000 == 1: если len(valid_data) > 0: с open(os.path.join(save_root, f"valid_{len(valid_data)}_{i}.txt"), "w") как f: f.writelines("\n".join(valid_data)) если len(err_data) > 0: с open(os.path.join(save_root, f"error_{len(err_data)}_{i+start}.txt"), "w") как f: f.writelines("\n".join(err_data)) если len(missing_data) > 0: с open(os.path.join(save_root, f"missing_{len(missing_data)}_{i}.txt"), "w") как f: f.writelines("\n".join(missing_data)) если len(valid_data) > 0: с open(os.path.join(save_root, f"valid_total.txt"), "w") как f: f.writelines("\n".join(valid_data)) если len(err_data) > 0: с open(os.path.join(save_root, f"error_total.txt"), "w") как f: f.writelines("\n".join(err_data)) если len(missing_data) > 0: с open(os.path.join(save_root, f"missing_total.txt"), "w") как f: f.writelines("\n".join(missing_data)) если __name__ == '__main__': check_data_valid() но после нескольких часов работы и обработки около 100 тыс. файлов путем просмотра файлов в save_root. Затем этот процесс перейдет в статус D (чтобы увидеть, используйте команду ps), что означает непрерывный сон. Интересно, почему это происходит и как этого избежать.
вот мой скрипт Python для обработки около 1 млн файлов, в основном для проверки существования этих файлов:
def check_data_valid(): data_root = "/data_alpha/data/video/internvid/" save_root = "/data_alpha/data/video/internvid/all_file_list/proc" download_list = "/data_alpha/data/video/internvid/all_file_list/all_files.txt" действительные_данные = [] err_data = [] отсутствующие_данные = [] с open(download_list, «r») как f: а = f.readlines() загрузки = [i.strip() для i в a] для i, элемент в перечислении (загрузки): файл = os.path.join(корень_данных, элемент) avi = file.replace(".mp4", ".avi") если os.path.exists(avi): valid_data.append(элемент) элиф os.path.exists(файл): err_data.append(элемент) еще: Missing_data.append(элемент) если (i) % 200000 == 1: если len(valid_data) > 0: с open(os.path.join(save_root, f"valid_{len(valid_data)}_{i}.txt"), "w") как f: f.writelines("\n".join(valid_data)) если len(err_data) > 0: с open(os.path.join(save_root, f"error_{len(err_data)}_{i+start}.txt"), "w") как f: f.writelines("\n".join(err_data)) если len(missing_data) > 0: с open(os.path.join(save_root, f"missing_{len(missing_data)}_{i}.txt"), "w") как f: f.writelines("\n".join(missing_data)) если len(valid_data) > 0: с open(os.path.join(save_root, f"valid_total.txt"), "w") как f: f.writelines("\n".join(valid_data)) если len(err_data) > 0: с open(os.path.join(save_root, f"error_total.txt"), "w") как f: f.writelines("\n".join(err_data)) если len(missing_data) > 0: с open(os.path.join(save_root, f"missing_total.txt"), "w") как f: f.writelines("\n".join(missing_data)) если __name__ == '__main__': check_data_valid() но после нескольких часов работы и обработки около 100 тыс. файлов путем просмотра файлов в save_root. Затем этот процесс перейдет в статус D (чтобы увидеть, используйте команду ps), что означает непрерывный сон. Интересно, почему это происходит и как этого избежать.
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Katana GF-66 не переходит в режим сна при закрытии крышки – Ubuntu 22 [закрыто]
Anonymous » » в форуме Linux - 0 Ответы
- 19 Просмотры
-
Последнее сообщение Anonymous
-