Ответы пользователя по тегу Программное обеспечение и интернет-сервисы
  • Как в разных папках найти дубли фотографий и переместить их в одну другую папку?

    gedev
    @gedev
    сисадмин-энтузиаст
    Как уже сказали, можно сравнивать файлы по хэшу и самому писать велосипеды, но вот здесь есть готовая утилита, которая умеет искать дубли: https://github.com/pkolaczk/fclones

    Пример:
    fclones group -f json -o duplicates.json /путь
    Выплюнет следующего вида JSON:
    spoiler

    {
      "header": {
        "version": "0.27.3",
        "timestamp": "2022-09-15T19:14:53.719409270+03:00",
        "command": [
          "/snap/fclones/19/bin/fclones",
          "group",
          "-f",
          "json",
          "."
        ],
        "base_dir": "/root/clones",
        "stats": {
          "group_count": 2,
          "total_file_count": 4,
          "total_file_size": 1256780,
          "redundant_file_count": 2,
          "redundant_file_size": 628390,
          "missing_file_count": 0,
          "missing_file_size": 0
        }
      },
      "groups": [
        {
          "file_len": 497684,
          "file_hash": "3181bc6f0fecd38df0199d60e1189ba7",
          "files": [
            "/root/clones/IMG_20181016_045456 (copy).jpg",
            "/root/clones/IMG_20181016_045456.jpg"
          ]
        },
        {
          "file_len": 130706,
          "file_hash": "5836d61ea4da8a05efb3870bdeed4028",
          "files": [
            "/root/clones/b3904388-decb-47b7-920c-36208ab8c201 (copy).jpg",
            "/root/clones/b3904388-decb-47b7-920c-36208ab8c201.jpg"
          ]
        }
      ]
    }


    Оттуда уже можно взять имена дубликатов и что-то с ними сделать. Можно на Python что-то подобное:
    import os
    import json
    import shutil
    
    
    source_data = 'd.json'  # исходный JSON
    dest = 'duplicates'  # директория назначения
    
    with open(source_data, 'r') as data:
        dup = json.loads(data.read())
    
    duplicates = []
    for group in dup['groups']:
        for file in group['files']:
            duplicates.append(file)
    
    for file in duplicates:
        if os.path.isfile(file):
            shutil.move(file, dest)
    Ответ написан
    Комментировать
  • В какой/каких программах посоветуете написать пользовательскую документацию/инструкцию к программе?

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

    Markdown подойдёт в большинстве случаев. Для более сложной разметки есть reStructuredText.

    • Есть прекрасный Sphinx, который понимает Markdown и reStructuredText. Умеет генерировать статические сайты, юниксовые страницы мануалов, PDF и ещё много чего из единого исходника.
    • Очень просто на Markdown можно собрать сайт с помощью Docusaurus.
    • Документацию на языке разметки можно выложить в Wiki в репозитории на GitHub, если особых требований к размещению нет.

    Если хочется WYSIWYG, то берите редактор Markdown, который так умеет. Например, Typora.
    Ответ написан
    Комментировать