Создание файлов через терминал и присоединение Два файла в сценарии Python3

Дескрипторы процессов - это концепция Windows, поэтому, что касается Unix и Linux, в первую очередь нечего закрывать. Однако родительский процесс должен правильно получить статус выхода с помощью waitpid или wait.

Когда процесс остановлен, то есть приостановлен, но не завершен, его можно возобновить, и вы можете найти много информации о нем.

Когда он завершился, вы ничего не можете сделать, чтобы оживить его или получить информацию о нем (за пределами его статуса выхода, если он не получен родительским процессом).

1
21.01.2019, 19:13
1 ответ

Команда findпросто выводит в том порядке, в котором файловая система задает записи каталога, без какой-либо сортировки или обработки. В зависимости от используемой файловой системы и других факторов переименование даже одного файла может изменить порядок итерации, но вполне вероятно, что изменение всех файлов приведет к этому. Без жесткого -контролируемого окружения нет особой причины, по которой два finds должны отдавать один и тот же приказ.

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

Возможно, что sortиспользование имен файлов могло бы помочь, если бы каждое из них имело уникальный неизменный префикс, но это единственный реалистичный вид пост-обработки, -который вы могли бы выполнить и продолжать с двумя отдельные файлы из двух findпрогонов. Я не рекомендую даже пробовать это.


Однако у detoxесть опция -v, которая распечатывает вносимые изменения (и -nдля распечатки того, что будет делать ). Вы можете использовать это для создания файла CSV или непосредственно из Python, используяsubprocess.run.

detox -v... | sed -e 's/ -> /,/' > names.csv

создаст CSV-файл, по крайней мере, так же хорошо, как один из ваших findс автоматически совпадающими старыми и новыми именами. Для базовых имен (, таких как %fсделал ), вам потребуется постобработка, которую вы можете сделать в Python, если это необходимо, или в оболочке.

0
28.01.2020, 00:21

Теги

Похожие вопросы