ОК, никто в ответах не упомянул об этом, так что, думаю, я собираюсь.Если вы пишете Python и имеете контроль над вашим интерпретатором, возможно, вы можете принудительно использовать интерпретатор Jython .
Jython - это интерпретатор Python, полностью реализованныйна Яве.У вас есть все стандартные библиотеки Python под рукой, с дополнительным преимуществом всех доступных библиотек Java SE.
На самом деле я не выполнил ни одного из следующих действий (думаю, что это больше похоже на psudeo-код без исключения).обработки), но вы можете смешивать и сопоставлять библиотеки Python и Java, и ваш код может выглядеть примерно так:
from java.util import Properties
from java.io import File, FileInputStream
import os
javasPropertyObject = Properties()
pathToPropFile = os.path.join('path', 'to', 'property', 'file.properties')
if os.path.isfile(pathToPropFile):
#this is java.io.File, not Python's file descriptor
propFile = File(pathToPropFile )
javasFileInputStreamObject = FileInputStream(propFile)
javasPropertyObject.load(javasFileInputStreamObject)
#now we can pull out Java properties as defined by the .property file grammar
myProp = javasPropertyObject.getProperty('myPropName')
, где файл, подобный этому, будет действительным, а не простым split on '='
решения:
myPropName1:value
myPropName2=value
myPropName3=\
value
#this is a = comment
myPropName4:my \
value
myPropNameWithUnicode=\u0009
Недостатком является то, что вы теряете способность быть переносимым среди различных интерпретаторов Python, и теперь вы заблокированы в Jython.Вы будете заблокированы в библиотеке, если вы попытаетесь такой подход.Причина, по которой мне нравится Jython, заключается в том, что вы получаете дополнительную гибкость благодаря наличию всех библиотек Java SE.