Python thay thế các biến môi trường trong tệp

Mô-đun hệ điều hành trong Python cung cấp các chức năng để tương tác với hệ điều hành. Hệ điều hành đi kèm với các mô-đun tiện ích tiêu chuẩn của Python. Mô-đun này cung cấp một cách di động để sử dụng chức năng phụ thuộc vào hệ điều hành. hệ điều hành. đường dẫn mô-đun là một mô-đun con của mô-đun hệ điều hành trong Python được sử dụng để thao tác tên đường dẫn phổ biến

Phương thức

$ echo ENV
dev
4 trong Python được sử dụng để mở rộng các biến môi trường trong đường dẫn đã cho. Nó thay thế các chuỗi con có dạng $name hoặc ${name} trong đường dẫn đã cho bằng giá trị của tên biến môi trường

Nếu đường dẫn đã cho chứa tên biến môi trường không đúng định dạng hoặc biến môi trường không tồn tại thì phương thức

$ echo ENV
dev
4 sẽ giữ nguyên đường dẫn đó

Trên Windows, phần mở rộng %name% cũng được hỗ trợ ngoài phần mở rộng $name và ${name}

cú pháp. hệ điều hành. con đường. expandvars[đường dẫn]

Tham số.
đường dẫn. Một đối tượng giống đường dẫn đại diện cho đường dẫn hệ thống tệp. Một đối tượng giống như đường dẫn là một đối tượng chuỗi hoặc byte đại diện cho một đường dẫn.

Loại trả lại. Phương thức này trả về một chuỗi đại diện cho tham số với các biến môi trường được mở rộng

Một số ứng dụng có thể phải sử dụng các biến đã được khởi tạo bên ngoài chương trình, nhưng thay vào đó, trong môi trường mà mã nguồn được cho là sẽ được thực thi

Các biến môi trường được chỉ định như một phần của môi trường trong đó các quy trình [chẳng hạn như ứng dụng Python] được thực thi. Nó bao gồm một cặp tên/giá trị và có thể được truy cập, ghi đè và bỏ đặt tại bất kỳ thời điểm nào. Các biến như vậy thường được định nghĩa trực tiếp trên giao diện dòng lệnh hoặc bằng các tập lệnh bash [e. g. khi khởi động hệ điều hành]. Tuy nhiên, ngay cả các chương trình phần mềm cũng có thể tự tương tác với chúng.

Trong hướng dẫn ngắn ngày hôm nay, chúng tôi sẽ trình bày cách lập trình truy cập ghi đè và hủy đặt các biến môi trường hiện có cũng như cách xuất các biến môi trường mới. Cuối cùng, chúng tôi cũng sẽ trình bày một số cách để kiểm tra xem một biến môi trường có tồn tại hay không.

Truy cập biến môi trường

Trước tiên, chúng tôi sẽ trình bày cách chúng tôi có thể truy cập theo chương trình các biến môi trường đã được xuất như một phần của môi trường mà ứng dụng Python của chúng tôi đang được thực thi

Giả sử rằng một quản trị viên hệ thống đã khởi tạo một biến môi trường có tên là

$ echo ENV
dev
5 với giá trị
$ echo ENV
dev
6

$ export ENV=dev

Chúng ta có thể xác minh rằng biến môi trường đã được khởi tạo bằng cách lặp lại giá trị thông qua dòng lệnh

$ echo ENV
dev

Bây giờ nếu chúng ta muốn lập trình truy cập biến môi trường bằng Python, chúng ta cần sử dụng đối tượng ánh xạ

$ echo ENV
dev
7

Một đối tượng ánh xạ trong đó các khóa và giá trị là các chuỗi đại diện cho môi trường quy trình. Ví dụ:

$ echo ENV
dev
8 là tên đường dẫn của thư mục chính của bạn [trên một số nền tảng] và tương đương với
$ echo ENV
dev
9 trong C

Ánh xạ này được ghi lại khi mô-đun

import osenv_var = os.environ['ENV']
print[f'Currently working in {env_var} environment'.
0 được nhập lần đầu tiên, thường là trong quá trình khởi động Python như một phần của quá trình xử lý
import osenv_var = os.environ['ENV']
print[f'Currently working in {env_var} environment'.
1. Những thay đổi đối với môi trường được thực hiện sau thời gian này không được phản ánh trong
import osenv_var = os.environ['ENV']
print[f'Currently working in {env_var} environment'.
2, ngoại trừ những thay đổi được thực hiện bằng cách sửa đổi trực tiếp
import osenv_var = os.environ['ENV']
print[f'Currently working in {env_var} environment'.
2

- Tài liệu Python

Bạn có thể sử dụng tên biến môi trường làm khóa cho đối tượng

import osenv_var = os.environ['ENV']
print[f'Currently working in {env_var} environment'.
2 để suy ra giá trị

import osenv_var = os.environ['ENV']
print[f'Currently working in {env_var} environment'.

Vấn đề với biểu thức trên là nó sẽ thất bại với

import osenv_var = os.environ['ENV']
print[f'Currently working in {env_var} environment'.
5 trong trường hợp biến môi trường
$ echo ENV
dev
5 không có trong môi trường. Do đó, cách tốt hơn là sử dụng
import osenv_var = os.environ['ENV']
print[f'Currently working in {env_var} environment'.
7 để truy cập nó. Nếu nó không tồn tại, nó sẽ chỉ trả về
import osenv_var = os.environ['ENV']
print[f'Currently working in {env_var} environment'.
8 thay vì ném một
import osenv_var = os.environ['ENV']
print[f'Currently working in {env_var} environment'.
5

$ echo ENV
dev
8

Về sau, bạn thậm chí có thể muốn đặt giá trị mặc định trong trường hợp biến môi trường chưa được khởi tạo

$ echo ENV
dev
9

Rõ ràng, một giải pháp thay thế khác là bắt

import osenv_var = os.environ['ENV']
print[f'Currently working in {env_var} environment'.
5 nhưng tôi muốn nói rằng điều này có thể là quá mức cần thiết đối với loại hoạt động này

$ export ENV=dev
1

Xuất hoặc ghi đè các biến môi trường

Nếu bạn muốn xuất hoặc thậm chí ghi đè lên một biến môi trường hiện có, thì bạn có thể sử dụng một phép gán đơn giản cho đối tượng

import osenv_var = os.environ['ENV']
print[f'Currently working in {env_var} environment'.
2

$ export ENV=dev
3

Và bây giờ có thể hợp lý hơn khi sử dụng ký hiệu

$ echo ENV
dev
82

$ export ENV=dev
5

Kiểm tra xem có tồn tại biến môi trường không

Chúng tôi đã trình bày một phần phần này nhưng tôi cũng sẽ trình bày một số cách bổ sung để kiểm tra xem biến môi trường có tồn tại hay không

Phương pháp đầu tiên, đơn giản là truy cập đối tượng

import osenv_var = os.environ['ENV']
print[f'Currently working in {env_var} environment'.
2 bằng cách sử dụng tên của biến làm khóa và bắt
import osenv_var = os.environ['ENV']
print[f'Currently working in {env_var} environment'.
5 cho biết biến môi trường không tồn tại

$ export ENV=dev
8

Một cách khác đơn giản là kiểm tra xem biến môi trường có phải là thành viên của đối tượng

import osenv_var = os.environ['ENV']
print[f'Currently working in {env_var} environment'.
2 hay không

$ echo ENV
dev
0

Cách thứ ba là kiểm tra xem phương thức

import osenv_var = os.environ['ENV']
print[f'Currently working in {env_var} environment'.
7 có trả về
import osenv_var = os.environ['ENV']
print[f'Currently working in {env_var} environment'.
8 hay không [trong khi không có giá trị mặc định nào được chỉ định]

$ echo ENV
dev
0

Cuối cùng, bạn thậm chí có thể sử dụng phương thức

$ echo ENV
dev
88 để kiểm tra xem tên biến môi trường có được chứa dưới dạng khóa trong đối tượng ánh xạ
import osenv_var = os.environ['ENV']
print[f'Currently working in {env_var} environment'.
2 hay không

$ echo ENV
dev
1

Gỡ cài đặt biến môi trường

Bây giờ để hủy đặt biến môi trường, bạn có thể gọi thao tác

$ echo ENV
dev
90

$ echo ENV
dev
2

Một lần nữa, biểu thức trên sẽ thất bại trong trường hợp

$ echo ENV
dev
5 chưa được khởi tạo và do đó nó bị thiếu trong đối tượng ánh xạ
import osenv_var = os.environ['ENV']
print[f'Currently working in {env_var} environment'.
2

Để tránh điều này, bạn có thể sử dụng câu lệnh if

$ echo ENV
dev
3

Ngoài ra, một cách hay hơn sẽ là

$ echo ENV
dev
93 biến môi trường từ đối tượng ánh xạ như minh họa bên dưới

$ echo ENV
dev
4

Suy nghĩ cuối cùng

Trong bài viết hôm nay, chúng ta đã thảo luận về tầm quan trọng của các biến môi trường và cách chúng có thể tương tác với các ứng dụng Python đang chạy. Cụ thể hơn, chúng tôi đã giới thiệu cách lập trình truy cập, bỏ đặt hoặc thậm chí xuất các biến môi trường bằng Python

Cũng cần lưu ý rằng các biến môi trường thường không chỉ được sử dụng bởi ứng dụng Python của riêng bạn và do đó, bạn đảm bảo tương tác với chúng theo cách không khiến môi trường ở trạng thái có thể phá vỡ các ứng dụng khác hoặc thậm chí

Trở thành thành viên và đọc mọi câu chuyện trên Medium. Phí thành viên của bạn hỗ trợ trực tiếp cho tôi và các nhà văn khác mà bạn đọc. Bạn cũng sẽ có toàn quyền truy cập vào mọi câu chuyện trên Phương tiện

Làm cách nào để thay đổi biến môi trường trong Python?

Để sửa đổi vĩnh viễn các biến môi trường mặc định, nhấp vào Bắt đầu và tìm kiếm 'chỉnh sửa biến môi trường' hoặc mở Thuộc tính hệ thống, Cài đặt hệ thống nâng cao và nhấp vào nút Biến môi trường. In this dialog, you can add or modify User and System variables.

Tôi có thể sử dụng các biến môi trường trong tệp JSON không?

Ghi chú. Theo mặc định, các tệp JSON được sử dụng để lưu trữ chi tiết nguồn dữ liệu và ánh xạ mục máy khách ngay cả khi biến môi trường không được đặt . Đặt đường dẫn thư mục để lưu trữ các tệp JSON bằng cách chạy lệnh sau. Ví dụ: chỉ định đường dẫn lưu trữ các tệp JSON của bạn.

Làm cách nào để đọc các biến môi trường trong tệp YAML?

Bạn có thể thực hiện thông qua yaml. add_implicit_resolver và yaml. add_constructor . Trong đoạn mã bên dưới, bạn đang xác định một trình phân giải sẽ khớp với ${ biến env } trong giá trị YAML và gọi hàm path_constructor để tra cứu biến môi trường.

Bạn có thể sử dụng các biến env trong YAML không?

Các biến môi trường có thể được sử dụng trong các loại tệp sau. Markdown và MDX . YAML, bao gồm các tệp cấu hình cổng thông tin .

Chủ Đề