Как использовать колбу, чтобы проверить, есть ли в каждой папке определенные файлы или нет, и использовать jinja2, чтобы показать результат? - PullRequest
0 голосов
/ 08 ноября 2018

Я сейчас пытаюсь проверить, есть ли в каждой папке определенные файлы.
Сначала я создаю два списка для хранения результата is_file.
folderlist[folder1,folder2], has_data[file1 ok,file2 nok,file1 ok, file2 ok]
Но я не знаю, как использовать jinja2 для борьбы с ними.
Я хочу, чтобы вывод мог быть как ниже.

folder1
  file1 ok
  file2 nok
folder2
  file1 ok
  file2 ok

А ниже мой код для проверки файла.
Не могли бы вы дать мне совет или лучшее решение?

        def has_data():
          folderlist = []
          has_data = []
          for root, dirs, files in walk(target_folder):
              qq = list(root.split('\\'))
              filefolder = qq[-1]
              folderlist.append(filefolder)
              file1_site = os.path.join(target_folder+'\\'+filefolder+'\\' + 'file1.txt')
              file2_site = os.path.join(target_folder+'\\'+filefolder+'\\' + 'file2.txt')
              if not os.path.isfile(file1_site):
                has_data.append('file1.txt  NOK')
              else:
                has_data.append('file1.txt  OK')
              if not os.path.isfile(file2_site):
                has_data.append('file2.txt  NOK')
              else:
                has_data.append('file2.txt  OK')
          del folderlist [0]
          del has_data [0]
          return render_template('hasdata.html',folderlist=folderlist,has_data=has_data)

1 Ответ

0 голосов
/ 08 ноября 2018

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

Из документации jinja2:

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

Таким образом, ваш шаблон может выглядеть примерно так, чтобы получить нужный вам результат:

<code>...
<pre>
  {% for folder in folderlist -%}
    {{ folder }}
      {% for file in has_data -%}
        {{ file }}
      {% endfor %}
  {% endfor %}
...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...