Существует ли стандартное соглашение об именовании файлов для пар ключ-значение в имени файла?

У меня есть несколько файлов данных, которые названы в честь того, что они содержат. Например

machine-testM_pid-1234_key1-value1.log

Есть ключи и значения, разделенные - и _. Есть ли лучший синтаксис для этого? Существуют ли парсеры, которые автоматически читают такие файлы / имена файлов?

Идея заключается в том, что имена файлов являются читаемыми человеком и машиной.

3 ответа

Решение

Кажется, нет стандартного соглашения об именах файлов для значений ключа.

8 лет спустя...

Я бы посоветовал вам заглянуть в https://en.wikipedia.org/wiki/Query_string

Это некрасивые имена файлов, но вам не придется заново изобретать колесо, например, для преобразования в dict/json, поскольку существуют проверенные методы анализа строк запросов, например, в библиотеке запросов.

На https://unix.stackexchange.com/questions/44153/good-style-practices-for-separators-in-file-or-directory-names также есть связанный вопрос, который содержит некоторую полезную информацию, содержащую некоторые идеи . для лучших визуальных разделителей ( _-_а также ___) это может быть лучше в этом случае

самый основной типKEY=VALUEЯ знаю, что файлы с довольно строгим синтаксисом будут:

  • .properties в основном для файлов конфигурации Java, они допускают комментарии
  • .env в основном для файлов среды unix, systemd-service, они допускают комментарии
  • .ini в основном для приложений C#, Python,..., они допускают комментарии и[sections]также

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

и есть еще много других с немного другим синтаксисом , например

  • Файлы .json и/или синтаксис"key":"value"
  • Файлы .yaml и/или синтаксисkey: "value"
  • XML- файлы и/или синтаксис<key>value</key>
  • пользовательские материалы, основанные на приложении, также могут быть ключ=значение, но это не обязательно... ищите что-то вроде .cfg , .conf , .config , .preferences , .settings ,...

надеюсь, это поможет.