Hướng dẫn how do i read a yaml config file in python? - làm cách nào để đọc tệp cấu hình yaml trong python?

Tôi thích đọc các cấu hình trong Python bằng cách sử dụng tệp yaml khi tôi phải chỉ định nhiều cấu hình liên quan đến nhau trong một tệp.yaml file when I have to specify multiple interrelated configurations in one file.

Vì vậy, làm thế nào để đi xung quanh nó: Tất cả những gì bạn cần làm là xô các cấu hình này dưới các tiêu đề khác nhau.bucket these configurations under different headers.

Xem xét tệp cấu hình request_conf.yaml:request_conf.yaml configuration file:

---
- server:
username: 'ram'
url: 'http://localhost:3000/'
- execution:
timeout: 60 #seconds

Và đây là cách đọc các cấu hình này trong tệp Python:python file:

import yamldef load_conf_file(config_file):
with open(config_file, "r") as f:
config = yaml.safe_load(f)
server_conf = config[0]["server"]
exec_conf = config[1]["execution"]
return server_conf, exec_conf
server_conf,exec_conf = load_conf_file("<path to config file>")username=server_conf["username"]
url=server_conf["url"]
timeout=exec_conf["timeout"]

Đó là nó!

Chúc bạn đọc vui vẻ!

Giả sử tôi có một tệp cấu hình yaml như:

test1:
    minVolt: -1
    maxVolt: 1
test2:
    curr: 5
    volt: 5

Tôi có thể đọc tệp vào Python bằng cách sử dụng:

import yaml

with open("config.yaml", "r") as f:
    config = yaml.load(f)

Sau đó tôi có thể truy cập các biến với

config['test1']['minVolt']

Phong cách khôn ngoan, cách tốt nhất để sử dụng các biến từ tệp cấu hình là gì? Tôi sẽ sử dụng các biến trong nhiều mô -đun. Nếu tôi chỉ cần truy cập các biến như được hiển thị ở trên, nếu một cái gì đó được đổi tên, tôi sẽ cần đổi tên mọi thể hiện của biến.

Chỉ tự hỏi những gì tốt nhất hoặc thực tiễn phổ biến để sử dụng các biến từ tệp cấu hình trong các mô -đun khác nhau.

Hình thức đầy đủ của YAML là một ngôn ngữ đánh dấu khác. Định dạng tệp này bây giờ rất phổ biến để lưu trữ dữ liệu tuần tự hóa có thể đọc được của con người. Nó chủ yếu được sử dụng cho các tệp cấu hình, nhưng nó cũng có thể được sử dụng cho các mục đích khác. Các loại dữ liệu vô hướng khác nhau như số, chuỗi, v.v. và dữ liệu hỗn hợp như danh sách, từ điển có thể là nội dung của tệp này. Phần mở rộng của fie này là ‘.yaml. Nhiều mô -đun tồn tại trong Python để đọc tệp YAML. Việc sử dụng mô -đun Pyyaml ​​để đọc tệp YAML trong Python đã hiển thị trong hướng dẫn này.PyYAML module to read the YAML file in Python has shown in this tutorial.

Pre-requisites:

Cài đặt mô -đun pyyaml

Pyyaml ​​là mô -đun Python tốt nhất để đọc tệp YAML. Mô -đun Pyyaml ​​không được cài đặt với Python theo mặc định. Vì vậy, bạn phải cài đặt gói này trước khi kiểm tra các ví dụ về hướng dẫn này. Chạy lệnh sau để cài đặt pyyaml.is the best module of Python to read the YAML file. PyYAML module is not installed with Python by default. So, you have to install this package before checking the examples of this tutorial. Run the following command to install PyYAML.

Tạo tệp yaml

Tạo một tệp yaml có tên máy khách.yaml với nội dung sau để sử dụng tệp này trong phần tiếp theo của hướng dẫn này.client.yaml with the following content to use this file in the next part of this tutorial.

client.yaml

- Tên: Kamal Hossain

& nbsp; Email: kamal@gmailemail: kamal@gmail.com

& nbsp; Điện thoại di động: 0184345679001843456790

& nbsp; - Tên: Sakil ahamed

& nbsp; Email: [email protected]email: sakil@gmail.com

& nbsp; Điện thoại di động: 015662343423015662343423

& nbsp; - Tên: Mizanur Rahman

& nbsp; Email: [email protected]email: mizan@gmail.com

& nbsp; Điện thoại di động: 0193678453401936784534

Ví dụ-1: Đọc nội dung YAML sau khi chuyển đổi đối tượng Python

Sau khi cài đặt gói pyyaml, mô -đun YAML có thể được nhập vào tập lệnh Python để đọc nội dung YAML bằng cách chuyển đổi một đối tượng Python. & NBSP; Hàm Dump () của mô -đun YAML được sử dụng để tạo nội dung YAML bằng cách tuần tự hóa nội dung của đối tượng Python. Tạo một tệp Python với tập lệnh sau để tạo và in luồng YAML bằng cách chuyển đổi nội dung của đối tượng Python. Hàm Dump () sắp xếp nội dung của từ điển dựa trên các khóa theo mặc định. PyYAML package, the YAML module can be imported into the python script to read YAML content by converting a python object.  The dump() function of the yaml module is used to create the YAML content by serializing the content of the python object. Create a python file with the following script to generate and print the YAML stream by converting the content of the python object. The dump() function sorts the content of the dictionary based on the keys by default.

# Nhập mô -đun YAML

nhập khẩu yaml yaml

# Khai báo một đối tượng Python với dữ liệu

Sách = [{'Tên': 'Hãy nghĩ Python: Giới thiệu về Thiết kế phần mềm', 'Tác giả': 'Allen B. Downey', 'Giá': '23'},= [{'name': 'Think Python: An Introduction to Software Design', 'author': 'Allen B. Downey', 'price': '23'},

& nbsp; & nbsp; & nbsp; & nbsp; & nbsp;{'name': 'Fluent Python: Clear, Concise, and Effective Programming', 'author': 'Luciano Ramalho', 'price': '50'},

& nbsp; & nbsp; & nbsp; & nbsp; & nbsp;{'name': 'Think Python: An Introduction to Software Design', 'author': 'Allen B. Downey', 'price': '33'}

& nbsp; & nbsp; & nbsp; & nbsp; ]]

# Chuyển đổi và in dữ liệu JSON trong luồng YAML

print(yaml.dump(books))(yaml.dump(books))

Output:

Đầu ra sau sẽ xuất hiện sau khi thực thi tập lệnh trên. Các mục của từng từ điển của danh sách Python đã chuyển đổi thành từng thành viên của nội dung YAML. Nội dung của đầu ra đã được sắp xếp dựa trên các khóa của từ điển. Đối với điều này, giá trị của khóa tác giả đã được in đầu tiên và giá trị của khóa giá đã được in cuối cùng.

Hướng dẫn how do i read a yaml config file in python? - làm cách nào để đọc tệp cấu hình yaml trong python?

Ví dụ-2: Đọc nội dung yaml từ tệp yaml

Tệp client.yaml được tạo trong phần trước của hướng dẫn này đã được sử dụng trong ví dụ này. Tạo một tệp Python với tập lệnh sau để đọc nội dung được sắp xếp của tệp máy khách.YAML dựa trên các khóa. Hàm Load () đã được sử dụng trong tập lệnh để đọc toàn bộ nội dung của tệp client.yaml. Hàm này sẽ trả về nội dung của tệp dưới dạng danh sách từ điển Python. Tiếp theo, hàm dump () được sử dụng để chuyển đổi danh sách thành luồng yaml đã được in sau đó.client.yaml file created in the previous part of this tutorial has been used in this example. Create a python file with the following script to read the sorted content of the client.yaml file based on the keys. The load() function has used in the script to read the full content of the client.yaml file. This function will return the content of the file as a python list of dictionaries. Next, the dump() function is used to convert the list into a YAML stream that has been printed later.

# Nhập mô -đun YAML

nhập khẩu yaml yaml

# Khai báo một đối tượng Python với dữ liệu

Sách = [{'Tên': 'Hãy nghĩ Python: Giới thiệu về Thiết kế phần mềm', 'Tác giả': 'Allen B. Downey', 'Giá': '23'}, open('client.yaml') as fh:

& nbsp; & nbsp; & nbsp; & nbsp; & nbsp;= yaml.load(fh, Loader=yaml.FullLoader)

& nbsp; & nbsp; & nbsp; & nbsp; & nbsp;

print(read_data)(read_data)

& nbsp; & nbsp; & nbsp; & nbsp; ]

# Chuyển đổi và in dữ liệu JSON trong luồng YAML= yaml.dump(read_data)

Đầu ra sau sẽ xuất hiện sau khi thực thi tập lệnh trên. Các mục của từng từ điển của danh sách Python đã chuyển đổi thành từng thành viên của nội dung YAML. Nội dung của đầu ra đã được sắp xếp dựa trên các khóa của từ điển. Đối với điều này, giá trị của khóa tác giả đã được in đầu tiên và giá trị của khóa giá đã được in cuối cùng.

print(sorted_data)(sorted_data)

Output:

Ví dụ-2: Đọc nội dung yaml từ tệp yamlclient.yaml file into a python list of dictionaries, each dictionary of the python list has converted into each member of the YAML content like the previous example. The value of the sort_key parameter of the dump() function is set to True by default. So, the output shows the sorted YAML content based on the keys.

Hướng dẫn how do i read a yaml config file in python? - làm cách nào để đọc tệp cấu hình yaml trong python?

Ví dụ-3: Đọc các khóa và giá trị từ tệp yaml

Tạo một tệp Python với tập lệnh sau để đọc và in khóa và giá trị riêng biệt với tệp client.yaml. Sau khi tải nội dung tệp vào biến read_data, hàm item () đã được sử dụng để đọc từng khóa và giá trị tương ứng từ nội dung. Các vòng lặp ‘cho‘ vòng lặp đã được sử dụng để lặp lại toàn bộ nội dung của tệp và in các cặp giá trị khóa. client.yaml file. After loading the file’s content into the read_data variable, the item() function has used to read each key and the corresponding value from the content. The nested ‘for‘ loop has used to iterate the full content of the file and print the key-value pairs.

# Nhập mô -đun YAML

nhập khẩu yaml yaml

# Tải tệp yaml

withopen ('client.yaml') là fh: open('client.yaml') as fh:

& nbsp; & nbsp; # Tải dữ liệu YAML từ tệp# Load YAML data from the file

& nbsp; & nbsp; read_data = yaml.load (fh, loader = yaml.fulllloader)= yaml.load(fh, Loader=yaml.FullLoader)

& nbsp; & nbsp; # Lặp lại vòng lặp để đọc và in dữ liệu yaml# Iterate the loop to read and print YAML data

& nbsp; & nbsp; Đối với tôi Inrange (0, len (read_data)):for i in range(0, len(read_data)):

& nbsp; & nbsp; & nbsp; & nbsp; Đối với khóa, giá trị trong read_data [i] .items ():for key, value in read_data[i].items():

& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; in (khóa, ":", giá trị)print(key, ":", value)

& nbsp; & nbsp; & nbsp; & nbsp; in('')print('')

Output:

Đầu ra sau sẽ xuất hiện sau khi thực thi tập lệnh trên. Nội dung tệp không được sắp xếp vì hàm dump () chưa được sử dụng trong tập lệnh.

Hướng dẫn how do i read a yaml config file in python? - làm cách nào để đọc tệp cấu hình yaml trong python?

Ví dụ-4: Đọc nội dung YAML vào danh sách từ điển

Hàm Safe_Load () được sử dụng để chuyển đổi nội dung của tệp YAML thành danh sách Python của các từ điển. Hàm này có thể được sử dụng để tải dữ liệu từ các nguồn không tin cậy. & NBSP; Tạo một tệp python với tập lệnh sau để tải nội dung của tệp yaml bằng hàm an toàn_load () và in nội dung được tải. safe_load() function is used to convert the content of the YAML file into the python list of the dictionaries. This function can be used to load data from untrusted sources also.  Create a python file with the following script to load the content of a YAML file using the safe_load() function and print the loaded content.

# Nhập mô -đun YAML

nhập khẩu yaml yaml

# Tải tệp yaml

withopen ('client.yaml') là fh: open('client.yaml') as fh:

& nbsp; & nbsp; # Tải dữ liệu YAML từ tệp# Convert the YAML data into a dictionary

& nbsp; & nbsp; read_data = yaml.load (fh, loader = yaml.fulllloader)= yaml.safe_load(fh)

& nbsp; & nbsp; # Lặp lại vòng lặp để đọc và in dữ liệu yaml

print(dictionary_data)(dictionary_data)

Output:

& nbsp; & nbsp; Đối với tôi Inrange (0, len (read_data)):

Hướng dẫn how do i read a yaml config file in python? - làm cách nào để đọc tệp cấu hình yaml trong python?

Conclusion:

& nbsp; & nbsp; & nbsp; & nbsp; Đối với khóa, giá trị trong read_data [i] .items ():YAML content from a python object and a file have been shown in this tutorial by using various examples. The concept of parsing the YAML file using the PyYAML package will be cleared for the python users after practicing the examples of this tutorial.

& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; in (khóa, ":", giá trị)

Hướng dẫn how do i read a yaml config file in python? - làm cách nào để đọc tệp cấu hình yaml trong python?

& nbsp; & nbsp; & nbsp; & nbsp; in('')

Làm cách nào để đọc và cập nhật tệp yaml trong Python?

Mẫu tập tin yaml đọc ví dụ..
Nhập mô -đun YAML đầu tiên bằng cách sử dụng câu lệnh nhập ..
Đọc tệp bằng phương thức mở ..
Phương thức Safe_load Đọc nội dung tệp và chuyển đổi nó thành đối tượng Python từ điển ..
kèm theo đọc tệp, hãy thử và mong đợi khối ngoại lệ ..

Làm cách nào để chuyển đổi Yaml thành Python?

Python không có hỗ trợ vượt trội cho YAML.Có nghĩa là, Python không thể đọc hoặc giải thích các tài liệu YAML theo mặc định.Để thêm hỗ trợ YAML vào Python, trước tiên bạn có để cài đặt mô -đun PyyamL.Để cài đặt mô -đun Pyyaml, bạn sẽ cần chạy lệnh PIP, đây là trình cài đặt gói cho Python.install the PyYAML module. To install the PyYAML module, you'll need to run the pip command, which is the package installer for Python.

Làm cách nào để mở tệp yaml cấu hình?

Nhấp vào biểu tượng thư mục ở trên cùng bên trái của cửa sổ Trình chỉnh sửa tệp để mở thanh bên của trình duyệt tệp.Nhấp vào tệp cấu hình.yaml (trong / config / thư mục) để tải nó vào cửa sổ Trình chỉnh sửa tệp chính.Click the configuration.yaml file (in the /config/ folder) to load it into the main file editor window.

Làm cách nào để truy cập vào tệp yml?

Để thiết lập các tệp cấu hình truy cập của bạn, bạn cần làm việc với các tệp YAML ở trên theo cách sau: Mở truy cập.Cấu hình ...
Mở quyền truy cập.....
Dán cặp giá trị khóa đã sao chép vào truy cập.....
Trong quyền truy cập.....
Lưu truy cập sửa đổi ..