Computer >> Máy Tính >  >> Lập trình >> Python

Trình phân tích cú pháp tệp cấu hình bằng Python (configparser)

Mô-đun configparser từ thư viện tiêu chuẩn của Python xác định chức năng để đọc và ghi các tệp cấu hình như được sử dụng bởi Hệ điều hành Windows của Microsoft. Các tệp như vậy thường có phần mở rộng .INI.

Tệp INI bao gồm các phần, mỗi phần được dẫn đầu bởi một tiêu đề [section]. Giữa các dấu ngoặc vuông, chúng ta có thể đặt tên của phần. Theo sau phần này là các mục nhập khóa / giá trị được phân tách bằng ký tự =hoặc:. Nó có thể bao gồm các nhận xét, có tiền tố là # hoặc; Biểu tượng. Tệp INI mẫu được hiển thị bên dưới -

[Settings]
# Set detailed log for additional debugging info
DetailedLog=1
RunStatus=1
StatusPort=6090
StatusRefresh=10
Archive=1
# Sets the location of the MV_FTP log file
LogFile=/opt/ecs/mvuser/MV_IPTel/log/MV_IPTel.log
Version=0.9 Build 4
ServerName=Unknown

[FTP]
# set the FTP server active
RunFTP=1
# defines the FTP control port
FTPPort=21
# Sets the location of the FTP data directory
FTPDir=/opt/ecs/mvuser/MV_IPTel/data/FTPdata
# set the admin Name
UserName=admin
# set the Password
Password=admin

Mô-đun configparser có lớp ConfigParser. Nó chịu trách nhiệm phân tích cú pháp danh sách các tệp cấu hình và quản lý cơ sở dữ liệu đã phân tích cú pháp.

Đối tượng của ConfigParser được tạo bằng câu lệnh sau -

parser = configparser.ConfigParser()

Các phương thức sau được định nghĩa trong lớp này -

phần () Trả lại tất cả các tên phần cấu hình.
has_section () Trả về liệu phần đã cho có tồn tại hay không.
has_option () Trả về liệu tùy chọn đã cho có tồn tại trong phần đã cho hay không.
tùy chọn () Trả lại danh sách các tùy chọn cấu hình cho phần được đặt tên.
read () Đọc và phân tích cú pháp tệp cấu hình được đặt tên.
read_file () Đọc và phân tích cú pháp một tệp cấu hình, được cung cấp dưới dạng đối tượng tệp.
read_string () Đọc cấu hình từ một chuỗi đã cho.
read_dict () Đọc cấu hình từ từ điển. Khóa là tên phần, giá trị là từ điển với các khóa và giá trị phải có trong phần.
get () Trả về giá trị chuỗi cho tùy chọn được đặt tên.
getint () Giống như get (), nhưng chuyển đổi giá trị thành một số nguyên.
getfloat () Giống như get (), nhưng chuyển đổi giá trị thành float.
getboolean () Giống như get (), nhưng chuyển đổi giá trị thành boolean. Trả về Sai hoặc Đúng.
mục () trả về danh sách các bộ giá trị với (tên, giá trị) cho mỗi tùy chọn trong phần.
remove_section () Xóa phần tệp đã cho và tất cả các tùy chọn của nó.
remove_option () Xóa tùy chọn đã cho khỏi phần đã cho.
set () Đặt tùy chọn đã cho.
write () Viết trạng thái cấu hình ở định dạng .ini.

Tập lệnh sau đọc và phân tích cú pháp tệp 'sampleconfig.ini'

import configparser
parser = configparser.ConfigParser()
parser.read('sampleconfig.ini')
for sect in parser.sections():
   print('Section:', sect)
   for k,v in parser.items(sect):
      print(' {} = {}'.format(k,v))
   print()

Đầu ra

Section: Settings
detailedlog = 1
runstatus = 1
statusport = 6090
statusrefresh = 10
archive = 1
logfile = /opt/ecs/mvuser/MV_IPTel/log/MV_IPTel.log
version = 0.9 Build 4
servername = Unknown

Section: FTP
runftp = 1
ftpport = 21
ftpdir = /opt/ecs/mvuser/MV_IPTel/data/FTPdata
username = admin
password = admin

Phương thức write () được sử dụng để tạo tệp cấu hình. Tập lệnh sau định cấu hình đối tượng phân tích cú pháp và ghi nó vào một đối tượng tệp đại diện cho 'test.ini'

import configparser
parser = configparser.ConfigParser()
parser.add_section('Manager')
parser.set('Manager', 'Name', 'Ashok Kulkarni')
parser.set('Manager', 'email', 'ashok@gmail.com')
parser.set('Manager', 'password', 'secret')
fp=open('test.ini','w')
parser.write(fp)
fp.close()