1. Trang chủ
  2. » Công Nghệ Thông Tin

Bài giảng Lập trình Python: Bài 9 - Trương Xuân Nam

30 50 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Bài giảng Lập trình Python: Bài 9 Làm việc với tập tin trong Python cung cấp cho người học những kiến thức như: Quan điểm xử lý tập tin của Python; Đóng/Mở tập tin; Đọc/Ghi dữ liệu của tập tin; Con trỏ tập tin; Làm việc với hệ thống thư mục; Bài tập. Mời các bạn cùng tham khảo!

LẬP TRÌNH PYTHON Bài 9: Làm việc với tập tin Python Tóm tắt nội dung trước ▪ Python địi hỏi lập trình viên triệt để xử lý vấn đề phát sinh thực thi chương trình chế ngoại lệ ▪ Python cung cấp cú pháp try-except-else-finally để xử lý ngoại lệ ▪ ▪ ▪ ▪ Khối try chứa đoạn mã phát sinh lỗi Khối except để xử lý ngoại lệ phát sinh từ khối try Khối else thực thi trường hợp khối try không sinh lỗi Khối finally thực thi tình huống, sử dụng để thực thi đoạn mã “dọn dẹp” vấn đề tồn đọng ▪ Lập trình viên tự sinh ngoại lệ cách sử dụng lệnh raise tự tạo hệ thống ngoại lệ riêng cần TRƯƠNG XUÂN NAM Nội dung Quan điểm xử lý tập tin Python Đóng/Mở tập tin Đọc/Ghi liệu tập tin Con trỏ tập tin Làm việc với hệ thống thư mục Bài tập TRƯƠNG XUÂN NAM Phần Quan điểm xử lý tập tin Python TRƯƠNG XUÂN NAM Quan điểm xử lý tập tin Python ▪ Tập tin (file) thư mục (folder) thành phần hệ thống lưu trữ liệu bền vững ▪ Tuy có vài hệ thống khơng sử dụng khái niệm ▪ Python cung cấp khả xử lý tập tin thành phần ngơn ngữ (một số ngơn ngữ lập trình khác xem xử lý tập tin tính mở rộng) ▪ Python chia tác vụ tập tin làm hai nhóm: Tác vụ quản lý: khơng ảnh hưởng đến nội dung tập tin (đổi tên, di chuyển, xóa, chép, phân quyền, ) Tác vụ nội dung: có tương tác với nội dung tập tin (đọc, ghi, ) ▪ Loại tác vụ quản lý, Python cung cấp nhiều hàm thuộc thư viện os (import os) để xử lý với 1-2 dòng lệnh TRƯƠNG XUÂN NAM Quan điểm xử lý tập tin Python ▪ Loại tác vụ nội dung, Python thực quy trình bước mở tập tin – xử lý – đóng tập tin tương tự ngơn ngữ lập trình khác ▪ Python chia tập tin làm hai loại: ▪ Tập tin văn bản: chứa nội dung chủ yếu text dấu trình bày (tab, xuống dịng, lề, ) • Python tự động xử lý việc lưu trữ dấu xuống dòng khác hệ điều hành Linux/Unix Windows • Python hỗ trợ việc tự động chuyển đổi mã hóa (encode) loại văn khác ▪ Tập tin nhị phân: Python xem dãy byte liệu thường thao tác theo khối liệu để tăng tốc độ xử lý TRƯƠNG XUÂN NAM Phần Đóng/Mở tập tin TRƯƠNG XUÂN NAM Làm việc với nội dung tập tin ▪ Làm việc với nội dung tập tin python gồm bước: Mở tập tin: Đây bước yêu cầu hệ thống chuẩn bị điều kiện cần thiết để đọc/ghi nội dung tập tin bao gồm định vị liệu vùng lưu trữ khởi tạo vùng đệm Làm việc với tập tin: Bước q trình, bước chương trình thực thao tác liên quan đến nội dung tập tin Đóng tập tin: Đảm bảo nội dung cập nhật lên vùng lưu trữ giải phóng tài nguyên cấp phát để làm việc với tập tin ▪ Các bước phát sinh ngoại lệ IOError ▪ Đây bước chung ngơn ngữ lập trình làm việc với tập tin, riêng Python TRƯƠNG XUÂN NAM Mở file ▪ Thao tác mở file chậm, thực bước sau: ▪ ▪ ▪ ▪ Kiểm tra người dùng có mở nhiều file khơng Kiểm tra file có tồn hệ thống hay khơng Kiểm tra chương trình có quyền truy cập nội dung hay khơng Kiểm tra thao tác file vào thời điểm hay khơng • File bị khóa chương trình khác • File đọc ghi thiết bị cấm ghi • File ghi loại thiết bị cấm đọc ▪ Định vị vùng liệu file thiết bị lưu trữ ▪ Chuẩn bị vùng đệm cho việc đọc/ghi liệu ▪ Vì mở file cần thiết ▪ Chọn cách mở file phù hợp với mục đích xử lý TRƯƠNG XUÂN NAM Mở file: f = open(filename, mode) Giá trị Ý nghĩa r Mở tập tin văn để đọc r+ Mở tập tin văn để đọc ghi rb Mở tập tin nhị phân để đọc rb+, r+b Mở tập tin nhị phân để đọc ghi w Mở tập tin văn để ghi, tập tin khơng tồn tạo w+ Mở tập tin văn để đọc ghi, tập tin khơng tồn tạo wb Mở tập tin nhị phân để ghi, tập tin khơng tồn tạo wb+, w+b Mở tập tin nhị phân để đọc ghi, tập tin khơng tồn tạo a Mở tập tin văn để ghi tiếp vào cuối tập tin tồn tại, tập tin không tồn tạo TRƯƠNG XUÂN NAM 10 Các hàm đọc file ▪ read(N): đọc N byte ▪ ▪ ▪ ▪ Nếu khơng viết N đọc đến cuối file Nếu liệu file không đủ N byte đọc đến cuối file Nếu tập tin mở chế độ văn trả str Nếu tập tin mở chế độ nhị phân trả dãy byte ▪ readline(N): đọc dịng từ file, tối đa N byte, không viết N trả str liệu đọc tới gặp kí tự hết dịng hết file ▪ Dữ liệu trả bao gồm kí tự xuống dịng \n, trừ tình đọc dịng cuối file TRƯƠNG XUÂN NAM 16 Các hàm đọc file ▪ readlines(N): sử dụng readline đọc dòng hết file trả danh sách string, viết N xử lý tối đa N byte ▪ Các lập trình viên Python có cách đọc dòng file đơn giản nhiều: for line in open("test.txt", encoding = 'utf-8'): # thực thao tác với dòng ▪ Như file văn Python kiểu ▪ Đoạn mã ghép với phát biểu with: with open('workfile') as f: for line in f: print(line, end='') TRƯƠNG XUÂN NAM 17 Các hàm ghi liệu file ▪ write(data): ghi data file, trả số byte ghi ▪ Phương thức làm việc với file văn file nhị phân ▪ Nếu file văn data phải kiểu str ▪ Nếu file nhị phân data phải khối byte (kiểu bytearray kiểu bytes) ▪ writelines(data): ghi tồn nội dung data vào file theo dịng ▪ Chỉ làm việc với kiểu file văn ▪ Dữ liệu data phải danh sách str ▪ Nếu cố dùng kiểu liệu khác phát sinh lỗi TypeError TRƯƠNG XUÂN NAM 18 Phần Con trỏ tập tin TRƯƠNG XUÂN NAM 19 Con trỏ tập tin ▪ Con trỏ tập tin vị trí thời đọc/ghi liệu, tương tự ta ghi liệu lên hình ▪ Một tập tin có trỏ tập tin ▪ Khi mở tập tin chế độ “thêm cuối” (a – append), trỏ tập tin tự động đặt cuối tập tin ▪ Các chế độ mở tập tin khác đặt trỏ tập tin đầu ▪ Python cung cấp số lệnh cho phép lấy vị trí di chuyển trỏ tập tin ▪ Chỉ nên sử dụng với tập tin nhị phân ▪ Không phải loại tập tin lấy vị trí dịch chuyển trỏ TRƯƠNG XUÂN NAM 20 Phương thức làm việc với trỏ tập tin Phương thức Chức Chuyển trỏ tập tin đến vị trí offset, tham số thứ hai from định cách tính vị trí: seek(offset, from) - SEEK_SET = 0: tính từ đầu tập tin (mặc định) SEEK_CUR = 1: tính từ vị trí thời SEEK_END = 2: tính từ cuối tập tin seekable() Trả True tập tin dạng truy cập ngẫu nhiên (dùng phương thức seek trên) tell() Trả vị trí trỏ tập tin (tính từ đầu tập tin) TRƯƠNG XUÂN NAM 21 Các phương thức khác tập tin Phương thức Chức fileno() Trả số nguyên mã định danh tập tin flush() Đẩy liệu khỏi vùng đệm, ghi xuống thiết bị lưu trữ isatty() Trả True tập tin kết nối với thiết bị đầu cuối read(N) Đọc N byte tập tin readable() Trả True tập tin đọc readline() Đọc trả dòng từ tập tin readlines() Đọc trả danh sách dòng từ tập tin truncate(size) Cắt tập tin lấy thành size byte writable() Trả True tập tin ghi write(S) Ghi nội dung biến S xuống tập tin writelines(lines) Ghi nội dung biến lines xuống tập tin, biến danh sách chuỗi, chuỗi ghi liên tiếp xuống tập tin TRƯƠNG XUÂN NAM 22 Phần Làm việc với hệ thống thư mục TRƯƠNG XUÂN NAM 23 Làm việc với hệ thống thư mục ▪ Các phương thức quản lý tập tin thư mục thuộc thư viện os (import os) ▪ Các phương thức loại sinh lỗi OSError ▪ Để tương thích hệ điều hành, Python xem dấu gạch chéo dấu phân tách đường dẫn ▪ Nghĩa "c:\\test", r’c:\test’ "c:/test" coi ▪ Lấy thư mục làm việc tại: os.getcwd() ▪ Trường hợp lấy str dạng mã ASCII dùng os.getcwdb() ▪ Thay đổi thư mục làm việc: os.chdir(path) với path đường dẫn đến thư mục ▪ Tạo thư mục mới: os.mkdir(path) TRƯƠNG XUÂN NAM 24 Làm việc với hệ thống thư mục ▪ Lấy danh sách thư mục tập tin nằm thư mục path: os.listdir(path) ▪ Nếu bỏ tham số path lấy danh sách từ thư mục ▪ Đổi tên thư mục tập tin: os.rename(old, new) ▪ Phương thức làm việc với tập tin thư mục ▪ Xóa bỏ tập tin: os.remove(filename) ▪ Xóa bỏ thư mục: os.rmdir(path) ▪ Phương thức xóa thư mục trống ▪ Trường hợp muốn xóa thư mục trống hay khơng, sử dụng phương thức shutil.rmtree(path) (cần import thư viện shutil) TRƯƠNG XUÂN NAM 25 Phân giải đường dẫn theo thư mục làm việc # Chú ý: Python phân giải đường dẫn theo thư mục # Vì cần cẩn thận viết đường dẫn lệnh import os # tạo thư mục abc thư mục os.mkdir('abc') # tạo thư mục xyz thư mục abc thuộc thư mục os.mkdir('abc/xyz') # tạo thư mục abc trong thư mục temp thuộc ổ đĩa C os.mkdir('C:/temp/abc') TRƯƠNG XUÂN NAM 26 Phần Bài tập TRƯƠNG XUÂN NAM 27 Bài tập TRƯƠNG XUÂN NAM 28 Bài tập TRƯƠNG XUÂN NAM 29 Bài tập TRƯƠNG XUÂN NAM 30 ... thuộc ổ đĩa C os.mkdir('C:/temp/abc') TRƯƠNG XUÂN NAM 26 Phần Bài tập TRƯƠNG XUÂN NAM 27 Bài tập TRƯƠNG XUÂN NAM 28 Bài tập TRƯƠNG XUÂN NAM 29 Bài tập TRƯƠNG XUÂN NAM 30 ... để xử lý với 1-2 dòng lệnh TRƯƠNG XUÂN NAM Quan điểm xử lý tập tin Python ▪ Loại tác vụ nội dung, Python thực quy trình bước mở tập tin – xử lý – đóng tập tin tương tự ngơn ngữ lập trình khác ▪... danh sách str ▪ Nếu cố dùng kiểu liệu khác phát sinh lỗi TypeError TRƯƠNG XUÂN NAM 18 Phần Con trỏ tập tin TRƯƠNG XUÂN NAM 19 Con trỏ tập tin ▪ Con trỏ tập tin vị trí thời đọc/ghi liệu, tương

Ngày đăng: 09/08/2021, 18:17

Xem thêm:

TỪ KHÓA LIÊN QUAN