Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 61 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
61
Dung lượng
805,69 KB
Nội dung
TRƯỜNG ĐẠI HỌC THỦY LỢI Khoa Công nghệ thông tin Bộ mơn Tin học KTTT LẬP TRÌNH PYTHON Giảng viên: TS.GVC Bùi Thị Thanh Xuân Email: xuanbtt@tlu.edu.vn Điện thoại: 0902001581 Chuyển đổi kiểu liệu Python Hàm Miêu tả int(x [,base]) Chuyển x thành số nguyên, base xđịnh sở x chuỗi long(x [,base] ) Chuyển đổi x thành long int, base xác định sở x chuỗi float(x) Chuyển đổi x thành số thực complex(real [,imag]) Chuyển đổi x thành số phức str(x) Chuyển đổi x thành chuỗi repr(x) Chuyển đổi đối tượng x thành chuỗi biểu thức eval(str) Ước lượng chuỗi trả đối tượng tuple(s) Chuyển đổi s thành Tuple list(s) Chuyển đổi s thành List set(s) Chuyển đổi s thành Set dict(d) Tạo Dictionary Tham số d phải dãy Tuple cặp (key, value) frozenset(s) Chuyển đổi s thành Fronzen Set Chuyển đổi kiểu liệu Python Hàm Miêu tả chr(x) Chuyển đổi số nguyên thành ký tự unichr(x) Chuyển đổi số nguyên thành ký tự Unicode ord(x) Chuyển đổi ký tự đơn thành giá trị nguyên hex(x) Chuyển đổi số nguyên thành chuỗi thập lục phân oct(x) Chuyển đổi số nguyên thành chuỗi bát phân 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 Xử lý tập tin Python 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 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ý Đóng/Mở tập tin 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 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 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ý 10 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ỏ 47 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) 48 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 49 Làm việc với hệ thống thư mục 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) 51 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) 52 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') 53 Ví dụ 54 Bài tập Tạo file chứa dịng văn nhập từ bàn phím: filename = input("Ten file: ") f = open(filename, 'w') i=0 while 1>0: i += s = input("Dong %d: "%i) if s!='': f.writelines(s+'\n') else: break f.close() Bài tập 1 Đọc file in hình dịng đầu tiên, file khơng đủ dịng in tồn nội dung file filename = input("Ten file: ") f = open(filename, 'r') L = f.readlines() for i in range(min(5,len(L))): print(L[i].rstrip('\n')) f.close() Bài tập Đọc file in hình dịng cuối cùng, file khơng đủ dịng in tồn nội dung file 6.Bài tập Bài tập Đọc file in hình dịng đầu tiên, file khơng đủ dịng in tồn nội dung file Đọc file in hình dịng cuối cùng, file khơng đủ dịng in tồn nội dung file Đọc file, tìm in nội dung dịng dài file Đọc file, tìm in từ dài file Đọc file, thống kê in tất chữ có file số lần xuất chữ Đọc file, thống kê tần xuất xuất tất từ file, in theo thứ tự giảm dần số lần xuất Bài tập Đọc tập tin văn abc.txt sau chuyển nội dung đọc sang chữ in hoa ghi vào tập tin xyz.txt Đọc tập tin văn abc.txt, lọc lấy tất số liệu đọc ghi chúng vào tập tin number.txt, số ghi dòng Nhập tên hai tập tin văn bản, đọc so sánh xem nội dung hai tập tin có giống hay khơng 10 Lấy danh sách tập tin thư mục tại, tiến hành so sánh nội dung tập tin thư mục, tập tin có nội dung giống Chương trình in nhóm tập tin có nội dung, đánh số nhóm tăng dần Bài tập 11 Ảnh jpg tập tin nhị phân có đặc điểm 4byte liệu từ vị trí thứ đến thứ tạo thành chữ JFIF (vị trí bắt đầu tính từ số 0) Hãy nhập tên tập tin, kiểm tra xem tập tin ảnh jpg khơng? 12 Ảnh bitmap (BMP) tập tin nhị phân: - 2byte đầu tạo nên chữ BM - 4byte từ vị trí 18-21 tạo nên số ngun 4byte số dịng (chiều cao) ảnh - 4byte từ vị trí 22-25 tạo nên số nguyên 4byte số cột (chiều ngang) ảnh Nhập tên tập tin, cho biết có phải ảnh bitmap khơng, in cỡ ảnh (dòng x cột)