создание папки и файлов, их временная метка

#python

#python

Вопрос:

Изучающий Python здесь. Я пытаюсь разработать скрипт так, чтобы он создавал папку и присваивал ей имена с указанием даты / времени и т.д… Эту часть я смог выполнить.

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

Теперь я хочу объединить эти действия, чтобы при запуске скрипта оба действия выполнялись вместе. Имена папок и файлов и временные метки. Но у меня это не работает. Вот ошибки, которые выдает мне python….

 Traceback (most recent call last):
  File "pan-backup-all.py", line 55, in <module>
    writeBackup(config, firewall["fwname"], folder)
  File "pan-backup-all.py", line 34, in writeBackup
    filename = "%s/%s.xml" % (folder, fwname, datetime.datetime.fromtimestamp(time.time()).strftime('PaloAlto_%Y%m%d_%H%M'))
TypeError: not all arguments converted during string formatting
 

Вот код с номерами строк, поэтому коды ошибок имеют некоторый контекст

https://app.box.com/s/dgo6nczegu5qdqijn8d7lbfsfr0ktfa2

Я бы опубликовал imagine, но моя репутация еще недостаточно высока, глупо.

Комментарии:

1. Вы показали, где находится ошибка, но не то, что это такое, и не какой-либо код, ведущий к ней.

2. у @ScottHunter возникли проблемы с публикацией кода, поэтому я перешел по ссылке, чтобы номера строк в выводе ошибки имели контекст, вы должны это увидеть сейчас. Спасибо, что посмотрели.

3. Вы все еще не определили, что это за ошибки.

4. Я очистил исходное сообщение, надеюсь, теперь оно более разборчиво

Ответ №1:

"%s/%s.xml" ожидает, что 2 строки будут заполнять строку формата; вы указали 3.

Похоже, вы хотите, чтобы временная метка добавлялась к именам папок и файлов, что можно было бы сделать следующим образом:

 timestamp = datetime.datetime.fromtimestamp(time.time()).strftime('PaloAlto_%Y%m%d_%H%M')
filename = "%s%s/%s%s.xml" % (folder, timestamp, fwname, timestamp)
 

Комментарии:

1. Я понимаю, что вы сказали, но не знаю, как это исправить, добавить ли мне еще один%s?

2. @Tsquared это полностью зависит от того, как вы хотите, чтобы результат выглядел. Вы также можете объединить последние две или первые две строки. Опять же, это зависит от того, как вы хотите, чтобы результат выглядел.

3. вывод @RandomDavis для просмотра? Что ж, я хочу увидеть, как скрипт создает папку с отметкой времени и помещает выходные файлы в эту папку с отметкой времени. Проясняет ли это, как должен выглядеть результат?

4. @Tsquared Да. В этом случае вы просто объедините строку времени со строками имен папок и файлов, а затем передадите эти две строки в качестве формата.

5. @RandomDavis можете ли вы показать мне, как это может выглядеть, поскольку я раньше этого не делал. Спасибо.