Nếu bạn cần đọc tất cả các giá trị từ một phần trong tệp thuộc tính một cách đơn giản:
Bố cục tệp
{'key1':'value1', 'key2':'value2'}
7 của bạn:[SECTION_NAME]
key1 = value1
key2 = value2
Bạn mã:
import configparser
config = configparser.RawConfigParser[]
config.read['path_to_config.cfg file']
details_dict = dict[config.items['SECTION_NAME']]
Điều này sẽ cung cấp cho bạn một từ điển trong đó các khóa giống như trong tệp cấu hình và các giá trị tương ứng của chúng.
{'key1':'value1', 'key2':'value2'}
8 là:{'key1':'value1', 'key2':'value2'}
Bây giờ để có được giá trị của key1:
{'key1':'value1', 'key2':'value2'}
9Đặt tất cả vào một phương thức chỉ đọc các phần từ tệp cấu hình một lần [lần đầu tiên phương thức được gọi trong quá trình chạy chương trình].
def get_config_dict[]:
if not hasattr[get_config_dict, 'config_dict']:
get_config_dict.config_dict = dict[config.items['SECTION_NAME']]
return get_config_dict.config_dict
Bây giờ hãy gọi chức năng trên và nhận giá trị khóa cần thiết:
config_details = get_config_dict[]
key_1_value = config_details['key1']
Cách tiếp cận đa phần chung:
[SECTION_NAME_1]
key1 = value1
key2 = value2
[SECTION_NAME_2]
key1 = value1
key2 = value2
Mở rộng cách tiếp cận được đề cập ở trên, tự động đọc phần theo từng phần và sau đó truy cập bằng tên phần theo sau là tên khóa.
def get_config_section[]:
if not hasattr[get_config_section, 'section_dict']:
get_config_section.section_dict = collections.defaultdict[]
for section in config.sections[]:
get_config_section.section_dict[section] = dict[config.items[section]]
return get_config_section.section_dict
Để truy cập:
config_dict = get_config_section[]
port = config_dict['DB']['port']
.'DB' is a section name in config file and 'port' is a key under section 'DB'.]
Củng cố bài học
Đáp án bài trước
Bạn có thể tìm thấy câu hỏi của phần này tại CÂU HỎI CỦNG CỐ trong bài KIỂU DỮ LIỆU DICT TRONG PYTHON – Phần 2.
- Củng cố bài học
- Đáp án bài trước
- Bạn có thể tìm thấy câu hỏi của phần này tại CÂU HỎI CỦNG CỐ trong bài KIỂU DỮ LIỆU DICT TRONG PYTHON – Phần 2.
- Vì hai dict trỏ cùng vào một nơi. Cách khắc phúc là ta dùng phương thức copy để có bản sao dict1.
- Sẽ có lỗi ở
- Câu hỏi củng cố
- Nêu sự khác nhau giữa mode r+ và w+
- Tèo mở file dưới mode vừa đọc và ghi. Tèo đang thắc mắc là vì sao sau khi ghi xong rồi, mà Tèo vẫn không đọc được gì cả. Hãy giải đáp giúp Tèo.
- Đáp án của phần này sẽ được trình bày ở bài tiếp theo. Tuy nhiên, Kteam khuyến khích bạn tự trả lời các câu hỏi để củng cố kiến thức cũng như thực hành một cách tốt nhất!
- Kết luận
- Phương thức write
- Kiểm soát con trỏ file
- Phương thức seek
- Mỗi lần sử dụng write. Con trỏ file sẽ được đặt ngay sau kí tự cuối cùng được ghi. Hãy lưu ý điều này, nó rất quan trọng đấy. Đặc biệt là khi bạn sử dụng các mode vừa đọc vừa ghi.
- Nhưng, bạn sẽ gặp vấn đề như thế này khi sử dụng mode w. Ta hãy mở lại file khi nãy ta mới ghi một vài dòng vào nhé.
- Phương thức seek
- Do đó, ta cũng không cần quan tâm tới parameter whence.
- Câu lệnh with
- Đặc điểm của câu lệnh with khi sử dụng với file là. Khi kết thúc with-block. File sẽ được đóng.
Tất nhiên, có thể sử dụng câu lệnh with kết hợp với toán tử :=CÁCH XỬ LÝ FILE trong Python. Một trong những điều thiết yếu mà bất cứ ngôn ngữ lập trình nào bạn cũng đều phải tìm hiểu.
Củng cố bài học
Đáp án bài trước
- Bạn có thể tìm thấy câu hỏi của phần này tại CÂU HỎI CỦNG CỐ trong bài KIỂU DỮ LIỆU DICT TRONG PYTHON – Phần 2.
- Vì hai dict trỏ cùng vào một nơi. Cách khắc phúc là ta dùng phương thức copy để có bản sao dict1.
- Sẽ có lỗi ở
- Câu hỏi củng cố
Nêu sự khác nhau giữa mode r+ và w+
- Tèo mở file dưới mode vừa đọc và ghi. Tèo đang thắc mắc là vì sao sau khi ghi xong rồi, mà Tèo vẫn không đọc được gì cả. Hãy giải đáp giúp Tèo.
- Đáp án của phần này sẽ được trình bày ở bài tiếp theo. Tuy nhiên, Kteam khuyến khích bạn tự trả lời các câu hỏi để củng cố kiến thức cũng như thực hành một cách tốt nhất!
- Kết luận
- Qua bài viết này, Bạn đã hiểu cơ bản về FILE TRONG PYTHON.
- Ở bài viết sau. Kteam sẽ nói về ITERATION & MỘT SỐ HÀM CƠ BẢN hay được sử dụng.
- Cảm ơn bạn đã theo dõi bài viết. Hãy để lại bình luận hoặc góp ý của mình để phát triển bài viết tốt hơn. Đừng quên “Luyện tập – Thử thách – Không ngại khó”.
- Thảo luận
Đáp án bài trước
Bạn có thể tìm thấy câu hỏi của phần này tại CÂU HỎI CỦNG CỐ trong bài KIỂU DỮ LIỆU DICT TRONG PYTHON – Phần 2.
Vì hai dict trỏ cùng vào một nơi. Cách khắc phúc là ta dùng phương thức copy để có bản sao dict1.
Sẽ có lỗi ở
- Câu hỏi củng cố
- Các dòng trong text file được ngăn cách bởi một kí tự newline và mặc định trong Python chính là kí tự escape sequence newline\n. escape sequence newline \n.
Binary File
- Các file này chỉ có thể được xử lí bởi một ứng dụng biết và có thể hiểu được cấu trúc của file này.
- Và chúng ta ở đây với mức độ cơ bản chỉ xử lí text file.
Mở File trong Python
Khỏi phải bàn, muốn thao tác với file, ta phải mở file. Mà muốn mở file, ta cũng cần phải có file.
Ở đây, Kteam sẽ tạo một file, và sau đó mở CMD ở ngay trong thư mục chứ file đó để không gặp nhiều khó khăn trong việc xử lí đường dẫn [Việc xử lí đường dẫn, Kteam sẽ giới thiệu cách xử lí bằng thư viện os trong tương lai].CMD ở ngay trong thư mục chứ file đó để không gặp nhiều khó khăn trong việc xử lí đường dẫn [Việc xử lí đường dẫn, Kteam sẽ giới thiệu cách xử lí bằng thư viện os trong tương lai].
Tên file sẽ là: kteam.txtkteam.txt
Nội dung file:
How Kteam
Free Education
Share to better
print['hello world!']
Hàm open
Được rồi, bây giờ chúng ta sẽ mở file bằng cách sử dụng hàm open
Cú pháp:
open[file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None][file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None]
Công dụng:Ở mức độ cơ bản, chúng ta sẽ chỉ quan tâm đến 2 parameter: file và mode.Ở mức độ cơ bản, chúng ta sẽ chỉ quan tâm đến 2 parameter: file và mode.
Nếu các bạn muốn tìm hiểu rõ hơn về các parameter khác. Hãy dùng lệnh:
>>> help[open]
Ta sẽ bắt đầu bắc cách thử mở một file.
Lưu ý: Kteam xin được khuyến khích các bạn không sử dụng interactive prompt ở bài này. Kteam xin được khuyến khích các bạn không sử dụng interactive prompt ở bài này.
import configparser
config = configparser.RawConfigParser[]
config.read['path_to_config.cfg file']
details_dict = dict[config.items['SECTION_NAME']]
0Lưu ý: hàm open trả về một file object. Đây cũng là một iterable.hàm open trả về một file object. Đây cũng là một iterable.
Tiếp đến là các mode mở file. Và cũng với mức độ cơ bản, Kteam sẽ cung cấp một số mode cơ bản liên quan đến text file.
Đóng File trong Python
Đây là việc chúng ta nên làm sau khi thao tác xong với file. Đó là đóng file.
Cú pháp:
.close[]close[]
open[file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None]
- Công dụng:Ở mức độ cơ bản, chúng ta sẽ chỉ quan tâm đến 2 parameter: file và mode.
- Nếu các bạn muốn tìm hiểu rõ hơn về các parameter khác. Hãy dùng lệnh:
Ta sẽ bắt đầu bắc cách thử mở một file.
Lưu ý: Kteam xin được khuyến khích các bạn không sử dụng interactive prompt ở bài này.
import configparser
config = configparser.RawConfigParser[]
config.read['path_to_config.cfg file']
details_dict = dict[config.items['SECTION_NAME']]
1Lưu ý: hàm open trả về một file object. Đây cũng là một iterable.
Tiếp đến là các mode mở file. Và cũng với mức độ cơ bản, Kteam sẽ cung cấp một số mode cơ bản liên quan đến text file.
Đóng File trong Python
Cú pháp:
.read[size=-1]read[size=-1]
open[file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None] Nếu size bị bỏ trống hoặc là một số âm. Nó sẽ đọc hết nội dung của file đồng thời đưa con trỏ file tới cuối file. Nếu không nó sẽ đọc tới n kí tự [với n = size] hoặc cho tới khi nội dung của file đã đọc xong.
- Công dụng:Ở mức độ cơ bản, chúng ta sẽ chỉ quan tâm đến 2 parameter: file và mode.
- Nếu các bạn muốn tìm hiểu rõ hơn về các parameter khác. Hãy dùng lệnh:
Ta sẽ bắt đầu bắc cách thử mở một file.
import configparser
config = configparser.RawConfigParser[]
config.read['path_to_config.cfg file']
details_dict = dict[config.items['SECTION_NAME']]
2Lưu ý: Kteam xin được khuyến khích các bạn không sử dụng interactive prompt ở bài này.
import configparser
config = configparser.RawConfigParser[]
config.read['path_to_config.cfg file']
details_dict = dict[config.items['SECTION_NAME']]
3Lưu ý: hàm open trả về một file object. Đây cũng là một iterable.
Cú pháp:
.readline[size=-1]readline[size=-1]
open[file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None]Với parameter size thì hoàn toàn tương tự như phương thức read.
- Công dụng:Ở mức độ cơ bản, chúng ta sẽ chỉ quan tâm đến 2 parameter: file và mode.newline hoặc hết file thì ngừng.
- Nếu các bạn muốn tìm hiểu rõ hơn về các parameter khác. Hãy dùng lệnh:
- Ta sẽ bắt đầu bắc cách thử mở một file.
- Lưu ý: Kteam xin được khuyến khích các bạn không sử dụng interactive prompt ở bài này.
Ta sẽ bắt đầu bắc cách thử mở một file.
import configparser
config = configparser.RawConfigParser[]
config.read['path_to_config.cfg file']
details_dict = dict[config.items['SECTION_NAME']]
4Lưu ý: Kteam xin được khuyến khích các bạn không sử dụng interactive prompt ở bài này.
Cú pháp:
.readlines[hint=-1]readlines[hint=-1]
open[file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None] hint.
Công dụng:Ở mức độ cơ bản, chúng ta sẽ chỉ quan tâm đến 2 parameter: file và mode. Phương thức này sẽ đọc toàn bộ file, sau đó cho chúng vào một list. Với các phần tử trong list là mỗi dòng của file.
- Nếu các bạn muốn tìm hiểu rõ hơn về các parameter khác. Hãy dùng lệnh:
Ta sẽ bắt đầu bắc cách thử mở một file.
import configparser
config = configparser.RawConfigParser[]
config.read['path_to_config.cfg file']
details_dict = dict[config.items['SECTION_NAME']]
5Lưu ý: Kteam xin được khuyến khích các bạn không sử dụng interactive prompt ở bài này.
Lưu ý: hàm open trả về một file object. Đây cũng là một iterable.iterable.
Tiếp đến là các mode mở file. Và cũng với mức độ cơ bản, Kteam sẽ cung cấp một số mode cơ bản liên quan đến text file.
import configparser
config = configparser.RawConfigParser[]
config.read['path_to_config.cfg file']
details_dict = dict[config.items['SECTION_NAME']]
6Đóng File trong Python
import configparser
config = configparser.RawConfigParser[]
config.read['path_to_config.cfg file']
details_dict = dict[config.items['SECTION_NAME']]
7Đây là việc chúng ta nên làm sau khi thao tác xong với file. Đó là đóng file.
Tại sao chúng ta nên đóng file sau khi hoàn tất công việc với file?
Giới hạn hệ điều hành. Chẳng hạn một hệ điều hành chỉ cho mở một số file nhất định cùng lúc thì nếu quên đóng file sẽ gây hao tốn. Đặc biệt là các file với dung lượng bự.
Khi một file được mở, hệ điều hành sẽ khóa file đó lại, không cho các chương trình khác có thể xử lí trên file đó nữa nhằm đảm bảo tính nhất quán của dữ liệu.
Do đó hãy close file khi xong việc!
Cú pháp:
.write[text]write[text]
open[file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None]Phương thức này sẽ trả về số kí tự mà chúng ta ghi vào.
Ta sẽ bắt đầu bắc cách thử mở một file.
import configparser
config = configparser.RawConfigParser[]
config.read['path_to_config.cfg file']
details_dict = dict[config.items['SECTION_NAME']]
8Lưu ý: Kteam xin được khuyến khích các bạn không sử dụng interactive prompt ở bài này.
Lưu ý: hàm open trả về một file object. Đây cũng là một iterable.
import configparser
config = configparser.RawConfigParser[]
config.read['path_to_config.cfg file']
details_dict = dict[config.items['SECTION_NAME']]
9Tiếp đến là các mode mở file. Và cũng với mức độ cơ bản, Kteam sẽ cung cấp một số mode cơ bản liên quan đến text file.
Đóng File trong Python
{'key1':'value1', 'key2':'value2'}
0Đây là việc chúng ta nên làm sau khi thao tác xong với file. Đó là đóng file.
Tại sao chúng ta nên đóng file sau khi hoàn tất công việc với file?
Việc đó, ta sẽ nhờ tới phương thức seek
Phương thức seek
Cú pháp:
.seek[offset, whence=0]seek[offset, whence=0]
Với Python 3.X. Một text file sẽ chỉ được sử dụng whence = 0. whence = 1 hoặc whence = 2 chỉ sử dụng với binary file. whence = 0. whence = 1 hoặc whence = 2 chỉ sử dụng với binary file.
Với Python 2.X thì bạn không phải quan tấm vấn đề này.
Do đó, ta cũng không cần quan tâm tới parameter whence.whence.
Công dụng: Phương thức này giúp ta di chuyển con trỏ từ vị trí đầu file qua offset kí tự. Và parameter offset phải là một số tự nhiên.Phương thức này giúp ta di chuyển con trỏ từ vị trí đầu file qua offset kí tự. Và parameter offset phải là một số tự nhiên.
- Nhờ phương thức này, ta có thể ghi nội dung từ bất cứ đâu trong file.
- Và từ đó ta có thể đọc lại file sau khi ta đưa con trỏ file xuống cuối file.
Ví dụ:
{'key1':'value1', 'key2':'value2'}
1Câu lệnh with
Cấu trúc cơ bản của câu lệnh with là
{'key1':'value1', 'key2':'value2'}
2 Nhớ rằng with-block nằm thụt vào so với dòng with expression [theo chuẩn PEP8 là 4 space và là dùng space không dùng tab]with-block nằm thụt vào so với dòng with expression [theo chuẩn PEP8 là 4 space và là dùng space không dùng tab]
Câu lệnh này liên quan đến phương thức __enter__ và __exit__ của đối tượng. Do đó, ở đây Kteam sẽ nói cơ bản khi sử dụng file.__enter__ và __exit__ của đối tượng. Do đó, ở đây Kteam sẽ nói cơ bản khi sử dụng file.
Đặc điểm của câu lệnh with khi sử dụng với file là. Khi kết thúc with-block. File sẽ được đóng. with-block. File sẽ được đóng.
{'key1':'value1', 'key2':'value2'}
3Tất nhiên, có thể sử dụng câu lệnh with kết hợp với toán tử := nhiên, có thể sử dụng câu lệnh with kết hợp với toán tử :=
{'key1':'value1', 'key2':'value2'}
4Củng cố bài học
Đáp án bài trước
Bạn có thể tìm thấy câu hỏi của phần này tại CÂU HỎI CỦNG CỐ trong bài KIỂU DỮ LIỆU DICT TRONG PYTHON – Phần 2.
- Vì hai dict trỏ cùng vào một nơi. Cách khắc phúc là ta dùng phương thức copy để có bản sao dict1.
- Sẽ có lỗi ở
{'key1':'value1', 'key2':'value2'}
5Câu hỏi củng cố
- Nêu sự khác nhau giữa mode r+ và w+
- Tèo mở file dưới mode vừa đọc và ghi. Tèo đang thắc mắc là vì sao sau khi ghi xong rồi, mà Tèo vẫn không đọc được gì cả. Hãy giải đáp giúp Tèo.
{'key1':'value1', 'key2':'value2'}
6Đáp án của phần này sẽ được trình bày ở bài tiếp theo. Tuy nhiên, Kteam khuyến khích bạn tự trả lời các câu hỏi để củng cố kiến thức cũng như thực hành một cách tốt nhất!
Kết luận
Qua bài viết này, Bạn đã hiểu cơ bản về FILE TRONG PYTHON.
Ở bài viết sau. Kteam sẽ nói về ITERATION & MỘT SỐ HÀM CƠ BẢN hay được sử dụng.
Cảm ơn bạn đã theo dõi bài viết. Hãy để lại bình luận hoặc góp ý của mình để phát triển bài viết tốt hơn. Đừng quên “Luyện tập – Thử thách – Không ngại khó”.Luyện tập – Thử thách – Không ngại khó”.
Thảo luận
Nếu bạn có bất kỳ khó khăn hay thắc mắc gì về khóa học, đừng ngần ngại đặt câu hỏi trong phần bên dưới hoặc trong mục HỎI & ĐÁP trên thư viện Howkteam.com để nhận được sự hỗ trợ từ cộng đồng.