Мне нужно прочитать, написать и создать файл INI с Python3.
FILE.INI
default_path = "/path/name/"
default_file = "file.txt"
Файл Python:
# Read file and and create if it not exists
config = iniFile( 'FILE.INI' )
# Get "default_path"
config.default_path
# Print (string)/path/name
print config.default_path
# Create or Update
config.append( 'default_path', 'var/shared/' )
config.append( 'default_message', 'Hey! help me!!' )
ОБНОВЛЕННЫЙ FILE.INI
default_path = "var/shared/"
default_file = "file.txt"
default_message = "Hey! help me!!"
python
python-3.x
ini
Olaf
источник
источник
[foobar]
.Ответы:
Это может быть что-то для начала:
Вы можете найти больше в официальной документации configparser .
источник
configparser.MissingSectionHeaderError
при использовании предоставленных файлов примеров без правильных заголовков разделов.Вот полный пример чтения, обновления и записи.
Входной файл, test.ini
Рабочий код.
Выходной файл, test_update.ini
Исходный входной файл остается нетронутым.
источник
read
метод теперь возвращает список прочитанных файлов / файлов, но не содержимоеhttp://docs.python.org/library/configparser.html
В этом случае может оказаться полезной стандартная библиотека Python.
источник
Стандарт
ConfigParser
обычно требует доступа черезconfig['section_name']['key']
, что неинтересно. Небольшая модификация может обеспечить доступ к атрибутам:AttrDict
- это класс, производный отdict
которого разрешен доступ как через ключи словаря, так и через атрибуты: это означаетa.x is a['x']
Мы можем использовать этот класс в
ConfigParser
:и теперь мы получаем
application.ini
:так как
источник
config._sections.general.key = "3"
таком доступе не изменялось внутреннее значение параметра конфигурации и, следовательно, его можно было использовать только для доступа только для чтения. Если после.read()
команды конфигурация расширяется или изменяется (добавляются параметры, пары значений для некоторых разделов, -> которая выполняет интерполяцию, что может быть очень важно), этот метод доступа использовать не следует! Также любой доступ кconfig._sections["section"]["opt"]
которому является частным, обходит интерполяцию и возвращает необработанные значения!ConfigObj - хорошая альтернатива ConfigParser, предлагающая гораздо большую гибкость:
У него есть недостатки:
=
… ( запрос на перенос )fuabr =
вместо того,fubar
что выглядит странно и неправильно.источник
содержимое моего файла backup_settings.ini
код Python для чтения
для написания или обновления
вывод
источник