Thao tác tệp với python
Python là ngôn ngữ lập trình được diễn giải và nhập động phổ biến để xây dựng các dịch vụ web, ứng dụng dành cho máy tính để bàn, tập lệnh tự động hóa và các dự án máy học. Các lập trình viên thường phải truy cập hệ thống tệp của hệ điều hành khi họ làm việc với các dự án phần mềm dựa trên Python Show
Ví dụ: chúng tôi sử dụng tệp văn bản làm đầu vào, ghi tệp văn bản làm đầu ra và xử lý tệp nhị phân thường xuyên. Giống như bất kỳ ngôn ngữ lập trình đa năng, phổ biến nào khác, Python cũng cung cấp các tính năng xử lý tệp đa nền tảng. Python cung cấp các tính năng xử lý tệp thông qua một số chức năng sẵn có và mô-đun tiêu chuẩn Trong bài viết này, tôi sẽ giải thích mọi thứ bạn cần biết về xử lý tệp Python, bao gồm điều kiện tiên quyếtTrước khi bắt đầu với hướng dẫn, hãy đảm bảo rằng bạn đã cài đặt trình thông dịch Python 3. Nếu không, hãy cài đặt trình thông dịch Python mới nhất từ các bản phát hành chính thức. Bạn cũng có thể sử dụng các đoạn mã của hướng dẫn này trong các dự án Python hiện có của mình Đọc tệp trong PythonLà hoạt động đầu tiên, hãy viết một số mã để đọc tệp văn bản. Trước tiên chúng ta cần tạo một đối tượng tệp để đọc tệp Python cung cấp hàm myFile = open("myFile.txt", "r") print(myFile.read(11)) # Programming myFile.close()8 sẵn có để tạo một đối tượng tệp với một số chế độ, chẳng hạn như chế độ đọc, chế độ ghi, v.v. Tạo một tệp văn bản có tên myFile = open("myFile.txt", "r") print(myFile.read(11)) # Programming myFile.close()9 và nhập nội dung sau Programming languages C C++ Python JavaScript Go Bây giờ, tạo một tệp mới có tên myFile = open("myFile.txt") print(myFile.read(11)) # Programming print(myFile.read(10)) # languages myFile.seek(0) # Sets file cursor to the beginning print(myFile.read(11)) # Programming myFile.close()0 và thêm đoạn mã sau myFile = open("myFile.txt", "r") # or open("myFile.txt") print(myFile.read()) myFile.close() Dòng đầu tiên của đoạn mã trên tạo đối tượng tệp myFile = open("myFile.txt") print(myFile.read(11)) # Programming print(myFile.read(10)) # languages myFile.seek(0) # Sets file cursor to the beginning print(myFile.read(11)) # Programming myFile.close()1 với tên tệp đã cho. Hàm myFile = open("myFile.txt", "r") print(myFile.read(11)) # Programming myFile.close()8 sẵn có tạo trình xử lý tệp bằng chế độ đọc vì chúng tôi đã cung cấp cờ myFile = open("myFile.txt") print(myFile.read(11)) # Programming print(myFile.read(10)) # languages myFile.seek(0) # Sets file cursor to the beginning print(myFile.read(11)) # Programming myFile.close()3 thông qua tham số thứ hai Đảm bảo gọi phương thức myFile = open("myFile.txt") print(myFile.read(11)) # Programming print(myFile.read(10)) # languages myFile.seek(0) # Sets file cursor to the beginning print(myFile.read(11)) # Programming myFile.close()4 để giải phóng tài nguyên sau khi sử dụng tệp. Phương thức myFile = open("myFile.txt") print(myFile.read(11)) # Programming print(myFile.read(10)) # languages myFile.seek(0) # Sets file cursor to the beginning print(myFile.read(11)) # Programming myFile.close()5 trả về nội dung tệp, vì vậy bạn sẽ thấy nội dung sau khi thực thi đoạn mã trên, như hình bên dưới Phương pháp myFile = open("myFile.txt") print(myFile.read(11)) # Programming print(myFile.read(10)) # languages myFile.seek(0) # Sets file cursor to the beginning print(myFile.read(11)) # Programming myFile.close()5 đọc toàn bộ tệp cùng một lúc. Nếu bạn không muốn đọc tất cả cùng một lúc, bạn có thể chỉ định kích thước byte với tham số của phương thức myFile = open("myFile.txt") print(myFile.read(11)) # Programming print(myFile.read(10)) # languages myFile.seek(0) # Sets file cursor to the beginning print(myFile.read(11)) # Programming myFile.close()5. Ví dụ: đoạn mã sau chỉ đọc 11 byte đầu tiên myFile = open("myFile.txt", "r") print(myFile.read(11)) # Programming myFile.close() Bạn sẽ thấy từ đầu tiên (“Lập trình”) là đầu ra — vì từ đầu tiên có 11 chữ cái và kích thước của một chữ cái bằng một byte trong bảng mã ASCII. Nếu bạn in lại kết quả của myFile = open("myFile.txt") print(myFile.read(11)) # Programming print(myFile.read(10)) # languages myFile.seek(0) # Sets file cursor to the beginning print(myFile.read(11)) # Programming myFile.close()8, bạn sẽ thấy 11 byte tiếp theo (“ngôn ngữ\n”) vì con trỏ tệp đã di chuyển 11 vị trí với lệnh gọi phương thức myFile = open("myFile.txt") print(myFile.read(11)) # Programming print(myFile.read(10)) # languages myFile.seek(0) # Sets file cursor to the beginning print(myFile.read(11)) # Programming myFile.close()8 trước đó. Bạn có thể đặt lại con trỏ tệp về đầu bằng cách sử dụng phương pháp myFile = open("myFile.txt", "r") for line in myFile.readlines(): print(line) myFile.close()0, như minh họa trong ví dụ sau myFile = open("myFile.txt") print(myFile.read(11)) # Programming print(myFile.read(10)) # languages myFile.seek(0) # Sets file cursor to the beginning print(myFile.read(11)) # Programming myFile.close() Trong hầu hết các trường hợp, thật dễ dàng để xử lý từng dòng nội dung tệp. Bạn không cần phải tự triển khai cơ chế đọc tệp theo dòng — Python cung cấp các tính năng sẵn có để đọc tệp theo từng dòng. Bạn có thể đọc từng dòng một tệp bằng vòng lặp myFile = open("myFile.txt", "r") for line in myFile.readlines(): print(line) myFile.close()1 và phương pháp myFile = open("myFile.txt", "r") for line in myFile.readlines(): print(line) myFile.close()2, như minh họa bên dưới myFile = open("myFile.txt", "r") for line in myFile.readlines(): print(line) myFile.close() Có thể lấy số dòng hiện tại bằng vòng lặp myFile = open("myFile.txt", "r") for line in myFile.readlines(): print(line) myFile.close()3 vì phương thức myFile = open("myFile.txt", "r") for line in myFile.readlines(): print(line) myFile.close()2 sẽ trả về các dòng sử dụng kiểu danh sách. Đoạn mã sau sẽ in nội dung dòng với số dòng tương ứng myFile = open("myFile.txt", "r") for i, line in enumerate(myFile.readlines()): print(i, line) # line number and content myFile.close() Viết tệp bằng PythonTrước đó, chúng tôi đã tạo các đối tượng tệp với chế độ đọc bằng cách sử dụng cờ myFile = open("myFile.txt") print(myFile.read(11)) # Programming print(myFile.read(10)) # languages myFile.seek(0) # Sets file cursor to the beginning print(myFile.read(11)) # Programming myFile.close()3. Không thể ghi tệp ở chế độ đọc, vì vậy chúng tôi phải sử dụng chế độ ghi ( myFile = open("myFile.txt", "r") for line in myFile.readlines(): print(line) myFile.close()6) để ghi tệp Hơn 200 nghìn nhà phát triển sử dụng LogRocket để tạo ra trải nghiệm kỹ thuật số tốt hơnTìm hiểu thêm →Cũng có thể kích hoạt đồng thời cả hai chế độ đọc và ghi bằng cách sử dụng cờ myFile = open("myFile.txt", "r") for line in myFile.readlines(): print(line) myFile.close()7 hoặc myFile = open("myFile.txt", "r") for line in myFile.readlines(): print(line) myFile.close()8; Để bắt đầu với việc ghi tệp, hãy nhập văn bản sau vào myFile = open("myFile.txt", "r") print(myFile.read(11)) # Programming myFile.close()9 hiện tại bằng cách viết một số mã Python Programming languages Rust Ruby TypeScript Dart Assembly Sử dụng tập lệnh sau để cập nhật myFile = open("myFile.txt", "r") print(myFile.read(11)) # Programming myFile.close()9 với nội dung trên myFile = open("myFile.txt", "w") content = """Programming languages Rust Ruby TypeScript Dart Assembly""" myFile.write(content) myFile.close() Ở đây, chúng tôi đã xác định nội dung tệp văn bản bằng cú pháp chuỗi nhiều dòng của Python và chúng tôi đã viết nội dung vào tệp bằng phương thức myFile = open("myFile.txt", "r") for i, line in enumerate(myFile.readlines()): print(i, line) # line number and content myFile.close()2. Đảm bảo sử dụng chế độ ghi với cờ myFile = open("myFile.txt", "r") for line in myFile.readlines(): print(line) myFile.close()6 — nếu không, thao tác ghi sẽ không thành công với ngoại lệ myFile = open("myFile.txt", "r") for i, line in enumerate(myFile.readlines()): print(i, line) # line number and content myFile.close()4 Đôi khi, chúng ta thường phải thêm nội dung mới vào một tệp hiện có. Trong những trường hợp đó, đọc và viết toàn bộ nội dung không phải là cách tiếp cận tốt do mức tiêu thụ tài nguyên cao hơn. Thay vào đó, chúng ta có thể sử dụng chế độ chắp thêm ( myFile = open("myFile.txt", "r") for i, line in enumerate(myFile.readlines()): print(i, line) # line number and content myFile.close()5) Nhìn vào đoạn mã sau. Nó sẽ thêm một ngôn ngữ lập trình mới vào danh sách trong myFile = open("myFile.txt", "r") print(myFile.read(11)) # Programming myFile.close()9 myFile = open("myFile.txt", "a") myFile.write("\nBash") myFile.close() Đoạn mã trên thêm một ký tự dòng mới ( myFile = open("myFile.txt", "r") for i, line in enumerate(myFile.readlines()): print(i, line) # line number and content myFile.close()7) và một từ mới vào tệp hiện có mà không ghi toàn bộ nội dung tệp. Do đó, chúng ta sẽ thấy một mục mới trong danh sách ngôn ngữ lập trình của mình. Hãy thử thêm nhiều mục hơn và xem điều gì sẽ xảy ra Các bài viết hay khác từ LogRocket
Đọc thuộc tính tệp trong PythonNgoài nội dung tệp gốc, một tệp trên đĩa sẽ chứa một số siêu dữ liệu hoặc thuộc tính tệp, bao gồm những thứ như kích thước, thời gian sửa đổi lần cuối, thời gian truy cập lần cuối, v.v. Nhìn vào mã tệp bên dưới, hiển thị kích thước tệp, lần truy cập cuối cùng và lần sửa đổi cuối cùng import os, time stat = os.stat("myFile.txt") print("Size: %s bytes" % stat.st_size) print("Last accessed: %s" % time.ctime(stat.st_atime)) print("Last modified: %s" % time.ctime(stat.st_mtime)) Hàm myFile = open("myFile.txt", "r") for i, line in enumerate(myFile.readlines()): print(i, line) # line number and content myFile.close()8 trả về một đối tượng kết quả thống kê với nhiều chi tiết thuộc tính tệp. Ở đây, chúng tôi đã sử dụng myFile = open("myFile.txt", "r") for i, line in enumerate(myFile.readlines()): print(i, line) # line number and content myFile.close()9 để lấy kích thước tệp, Programming languages Rust Ruby TypeScript Dart Assembly0 để lấy dấu thời gian được truy cập tệp cuối cùng và Programming languages Rust Ruby TypeScript Dart Assembly1 để lấy dấu thời gian được sửa đổi lần cuối. Đối tượng kết quả thống kê có thể khác nhau tùy theo hệ điều hành của bạn. Ví dụ: trên hệ điều hành Windows, bạn có thể truy xuất các thuộc tính tệp dành riêng cho Windows thông qua khóa Programming languages Rust Ruby TypeScript Dart Assembly2 Nếu bạn chỉ cần lấy kích thước tệp, bạn có thể sử dụng phương pháp Programming languages Rust Ruby TypeScript Dart Assembly3 mà không cần truy xuất tất cả siêu dữ liệu, như được hiển thị trong đoạn mã sau myFile = open("myFile.txt", "r") # or open("myFile.txt") print(myFile.read()) myFile.close()0 Tạo thư mục Python mớiPython cung cấp hàm Programming languages Rust Ruby TypeScript Dart Assembly4 để tạo một thư mục. Đoạn mã sau tạo Programming languages Rust Ruby TypeScript Dart Assembly5 trong thư mục làm việc hiện tại myFile = open("myFile.txt", "r") # or open("myFile.txt") print(myFile.read()) myFile.close()1 Nếu bạn cố gắng tạo nhiều thư mục theo cách đệ quy với đoạn mã trên, nó sẽ thất bại. Ví dụ: bạn không thể tạo Programming languages Rust Ruby TypeScript Dart Assembly6 cùng một lúc vì nó yêu cầu tạo nhiều thư mục. Trong những trường hợp đó, chức năng Programming languages Rust Ruby TypeScript Dart Assembly7 sẽ giúp chúng tôi, như hình bên dưới myFile = open("myFile.txt", "r") # or open("myFile.txt") print(myFile.read()) myFile.close()2 Đọc nội dung thư mục PythonPython cũng cung cấp một API dễ dàng để liệt kê nội dung thư mục thông qua hàm Programming languages Rust Ruby TypeScript Dart Assembly8. Đoạn mã sau liệt kê tất cả các tệp và thư mục trong thư mục làm việc hiện tại của bạn myFile = open("myFile.txt", "r") # or open("myFile.txt") print(myFile.read()) myFile.close()3 Khi bạn thực thi đoạn script trên, nó sẽ hiển thị các mục trong thư mục hiện tại của bạn, như hình bên dưới Hãy thử thực thi tập lệnh từ một thư mục khác. Sau đó, nó sẽ hiển thị các mục của thư mục cụ thể đó vì chúng tôi sử dụng hàm Programming languages Rust Ruby TypeScript Dart Assembly9 để lấy thư mục làm việc hiện tại Đôi khi chúng ta cần liệt kê nội dung thư mục theo cách đệ quy. Hàm myFile = open("myFile.txt", "w") content = """Programming languages Rust Ruby TypeScript Dart Assembly""" myFile.write(content) myFile.close()0 giúp chúng ta liệt kê thư mục đệ quy. Đoạn mã sau liệt kê tất cả các mục của thư mục làm việc hiện tại theo cách đệ quy myFile = open("myFile.txt", "r") # or open("myFile.txt") print(myFile.read()) myFile.close()4 Hàm myFile = open("myFile.txt", "w") content = """Programming languages Rust Ruby TypeScript Dart Assembly""" myFile.write(content) myFile.close()0 có triển khai đệ quy bên trong. Nó trả về ba giá trị cho mỗi mục
Ở đây, chúng tôi đã sử dụng các biến myFile = open("myFile.txt", "w") content = """Programming languages Rust Ruby TypeScript Dart Assembly""" myFile.write(content) myFile.close()2, myFile = open("myFile.txt", "w") content = """Programming languages Rust Ruby TypeScript Dart Assembly""" myFile.write(content) myFile.close()3 và myFile = open("myFile.txt", "w") content = """Programming languages Rust Ruby TypeScript Dart Assembly""" myFile.write(content) myFile.close()4 tương ứng, với một vòng lặp for để nắm bắt tất cả các mục nhập Xóa tệp hoặc thư mục trong PythonChúng ta có thể sử dụng hàm myFile = open("myFile.txt", "w") content = """Programming languages Rust Ruby TypeScript Dart Assembly""" myFile.write(content) myFile.close()5 để xóa tệp. Có thể sử dụng hàm myFile = open("myFile.txt", "w") content = """Programming languages Rust Ruby TypeScript Dart Assembly""" myFile.write(content) myFile.close()6 trước myFile = open("myFile.txt", "w") content = """Programming languages Rust Ruby TypeScript Dart Assembly""" myFile.write(content) myFile.close()5 để ngăn chặn các trường hợp ngoại lệ. Nhìn vào đoạn mã ví dụ sau myFile = open("myFile.txt", "r") # or open("myFile.txt") print(myFile.read()) myFile.close()5 Thư viện chuẩn Python cũng cung cấp hàm myFile = open("myFile.txt", "w") content = """Programming languages Rust Ruby TypeScript Dart Assembly""" myFile.write(content) myFile.close()8 để xóa một thư mục. Nó hoạt động tương tự như Programming languages Rust Ruby TypeScript Dart Assembly4 và sẽ không xóa thư mục nếu thư mục cụ thể đó có một số mục nhập. Trước tiên, hãy thử xóa một thư mục có mã sau myFile = open("myFile.txt", "r") # or open("myFile.txt") print(myFile.read()) myFile.close()6 Đoạn mã trên sẽ báo lỗi nếu Programming languages Rust Ruby TypeScript Dart Assembly5 chứa các thư mục con hoặc tệp. Sử dụng đoạn mã sau để xóa một thư mục theo cách đệ quy myFile = open("myFile.txt", "r") # or open("myFile.txt") print(myFile.read()) myFile.close()7 Thực hiện tìm kiếm tệp trong PythonKhi chúng tôi làm việc với các tập lệnh tự động hóa, đôi khi chúng tôi cần thực hiện tìm kiếm tệp trên đĩa. Ví dụ: các lập trình viên thường cần tìm tệp nhật ký, tệp hình ảnh và các tệp văn bản khác nhau thông qua tập lệnh Python của họ. Có một số cách tiếp cận khác nhau để thực hiện tìm kiếm tệp trong Python
Nhìn chung, cách tiếp cận thứ ba là tốt nhất cho hầu hết các kịch bản vì nó có hỗ trợ lọc sẵn, hiệu suất rất tốt và yêu cầu mã tối thiểu từ phía nhà phát triển (thêm Pythonic). Hãy triển khai tìm kiếm tệp với mô-đun toàn cục Python myFile = open("myFile.txt", "r") # or open("myFile.txt") print(myFile.read()) myFile.close()8 Đoạn mã trên liệt kê tất cả các tệp nguồn Python trong thư mục hiện tại theo cách đệ quy. Hai dấu hoa thị đầu tiên ( myFile = open("myFile.txt", "a") myFile.write("\nBash") myFile.close()8) trong biến truy vấn hướng dẫn Python tìm kiếm mọi thư mục con, trong khi dấu hoa thị cuối cùng đề cập đến bất kỳ tên tệp nào Chạy đoạn script trên. Bạn sẽ thấy các tệp nguồn Python, như hình bên dưới Cố gắng tìm kiếm các loại tệp khác nhau bằng cách thay đổi biến myFile = open("myFile.txt", "a") myFile.write("\nBash") myFile.close()9 Xử lý tệp nhị phân trong PythonTrước đó, chúng tôi đã xử lý tệp văn bản. Hàm myFile = open("myFile.txt", "r") print(myFile.read(11)) # Programming myFile.close()8 sẵn có tạo các đối tượng tệp với chế độ văn bản ( import os, time stat = os.stat("myFile.txt") print("Size: %s bytes" % stat.st_size) print("Last accessed: %s" % time.ctime(stat.st_atime)) print("Last modified: %s" % time.ctime(stat.st_mtime))1) theo mặc định. Không thể xem các tệp phi văn bản như tệp hình ảnh, tệp zip và tệp video dưới dạng tệp văn bản thuần túy — vì không có tệp nhị phân câu tiếng Anh nào có thể đọc được. Do đó, chúng ta phải coi các tệp nhị phân là tệp không phải văn bản thông qua xử lý ở cấp độ byte (hoặc cấp độ bit) Để bắt đầu với việc xử lý tệp nhị phân, hãy viết một tệp nhị phân có một số byte. Chúng tôi sẽ lưu các byte sau vào import os, time stat = os.stat("myFile.txt") print("Size: %s bytes" % stat.st_size) print("Last accessed: %s" % time.ctime(stat.st_atime)) print("Last modified: %s" % time.ctime(stat.st_mtime))2 myFile = open("myFile.txt", "r") # or open("myFile.txt") print(myFile.read()) myFile.close()9 Để đơn giản, chúng ta có thể biểu diễn các byte trên bằng các giá trị thập phân sau tương ứng myFile = open("myFile.txt", "r") print(myFile.read(11)) # Programming myFile.close()0 Bây giờ, hãy thêm đoạn mã sau vào tệp nguồn Python của bạn và thực thi nó để tạo tệp nhị phân myFile = open("myFile.txt", "r") print(myFile.read(11)) # Programming myFile.close()1 Ở đây, chúng ta đã truyền một thể hiện mảng byte cho phương thức myFile = open("myFile.txt", "r") for i, line in enumerate(myFile.readlines()): print(i, line) # line number and content myFile.close()2 của đối tượng tệp. Ngoài ra, lưu ý rằng chúng tôi đã sử dụng chế độ nhị phân (______39_______4) để tạo đối tượng tệp. Sau khi thực hiện đoạn mã trên, hãy mở import os, time stat = os.stat("myFile.txt") print("Size: %s bytes" % stat.st_size) print("Last accessed: %s" % time.ctime(stat.st_atime)) print("Last modified: %s" % time.ctime(stat.st_mtime))2 mới tạo bằng trình soạn thảo văn bản yêu thích của bạn. Bạn sẽ thấy kết quả sau Chúng tôi đã nhận được “Python” làm đầu ra vì các byte của mảng byte đại diện cho các ký tự ASCII đã biết. Ví dụ: import os, time stat = os.stat("myFile.txt") print("Size: %s bytes" % stat.st_size) print("Last accessed: %s" % time.ctime(stat.st_atime)) print("Last modified: %s" % time.ctime(stat.st_mtime))6 ( import os, time stat = os.stat("myFile.txt") print("Size: %s bytes" % stat.st_size) print("Last accessed: %s" % time.ctime(stat.st_atime)) print("Last modified: %s" % time.ctime(stat.st_mtime))7) đại diện cho chữ cái import os, time stat = os.stat("myFile.txt") print("Size: %s bytes" % stat.st_size) print("Last accessed: %s" % time.ctime(stat.st_atime)) print("Last modified: %s" % time.ctime(stat.st_mtime))8 trong bảng mã ASCII. Mặc dù chúng tôi đã lưu văn bản có thể đọc được bên trong tệp nhị phân, nhưng hầu hết tất cả các tệp nhị phân đều chứa các luồng byte không thể đọc được. Hãy thử mở tệp hình ảnh qua trình soạn thảo văn bản Bây giờ chúng ta có thể thấy thao tác đọc tệp nhị phân trong mã ví dụ sau myFile = open("myFile.txt", "r") print(myFile.read(11)) # Programming myFile.close()2 Python trả về byte bằng phương thức myFile = open("myFile.txt") print(myFile.read(11)) # Programming print(myFile.read(10)) # languages myFile.seek(0) # Sets file cursor to the beginning print(myFile.read(11)) # Programming myFile.close()5 cho chế độ nhị phân. Ở đây, chúng tôi đã chuyển đổi byte thành một thể hiện myFile = open("myFile.txt", "r") # or open("myFile.txt") print(myFile.read()) myFile.close()00 bằng cách sử dụng hàm tạo myFile = open("myFile.txt", "r") # or open("myFile.txt") print(myFile.read()) myFile.close()00 Tạo và giải nén từ kho lưu trữ PythonCác lập trình viên thường sử dụng các tệp lưu trữ với các ứng dụng web, dịch vụ web, ứng dụng dành cho máy tính để bàn và các chương trình tiện ích dựa trên Python để xuất hoặc nhập nhiều tệp cùng một lúc. Ví dụ: nếu bạn đang xây dựng trình quản lý tệp dựa trên web, thì bạn có thể cung cấp tính năng để người dùng tải xuống nhiều tệp cùng lúc thông qua tệp zip được tạo theo chương trình Thư viện tiêu chuẩn Python cung cấp API xử lý tệp lưu trữ thông qua mô-đun myFile = open("myFile.txt", "r") # or open("myFile.txt") print(myFile.read()) myFile.close()02. Đầu tiên, hãy tạo một kho lưu trữ với nội dung của Programming languages Rust Ruby TypeScript Dart Assembly5. Nhìn vào đoạn mã sau. Đảm bảo tạo Programming languages Rust Ruby TypeScript Dart Assembly5 và thêm một số tệp vào đó trước khi chạy đoạn mã myFile = open("myFile.txt", "r") print(myFile.read(11)) # Programming myFile.close()3 Bạn có thể giải nén tệp lưu trữ vào myFile = open("myFile.txt", "r") # or open("myFile.txt") print(myFile.read()) myFile.close()05 bằng đoạn mã sau myFile = open("myFile.txt", "r") print(myFile.read(11)) # Programming myFile.close()4 Sao chép và di chuyển tập tinMô-đun myFile = open("myFile.txt", "r") # or open("myFile.txt") print(myFile.read()) myFile.close()02 cũng cung cấp các chức năng API đa nền tảng để sao chép và di chuyển tệp. Nhìn vào các ví dụ sau myFile = open("myFile.txt", "r") print(myFile.read(11)) # Programming myFile.close()5 Các phương pháp hay nhất về xử lý tệp PythonCác lập trình viên tuân theo các thực hành mã hóa khác nhau. Tương tự, các lập trình viên Python cũng tuân theo các cách viết mã khác nhau khi họ xử lý các tệp Ví dụ: một số lập trình viên sử dụng khối thử cuối cùng và đóng trình xử lý tệp theo cách thủ công. Một số lập trình viên cho phép trình thu gom rác đóng trình xử lý tệp bằng cách bỏ qua lệnh gọi phương thức myFile = open("myFile.txt") print(myFile.read(11)) # Programming print(myFile.read(10)) # languages myFile.seek(0) # Sets file cursor to the beginning print(myFile.read(11)) # Programming myFile.close()4 — đây không phải là một cách làm tốt. Trong khi đó, các lập trình viên khác sử dụng cú pháp myFile = open("myFile.txt", "r") # or open("myFile.txt") print(myFile.read()) myFile.close()08 để làm việc với các trình xử lý tệp Trong phần này, tôi sẽ tóm tắt một số phương pháp hay nhất để xử lý tệp trong Python. Trước tiên, hãy xem đoạn mã sau tuân theo các phương pháp hay nhất về xử lý tệp myFile = open("myFile.txt", "r") print(myFile.read(11)) # Programming myFile.close()6 Ở đây, chúng tôi đã sử dụng từ khóa myFile = open("myFile.txt", "r") # or open("myFile.txt") print(myFile.read()) myFile.close()08 để đóng hoàn toàn trình xử lý tệp. Ngoài ra, chúng tôi xử lý các trường hợp ngoại lệ có thể xảy ra bằng khối thử ngoại trừ. Trong khi bạn đang làm việc với việc xử lý tệp Python, có thể chắc chắn rằng mã của bạn có các điểm sau
myFile = open("myFile.txt", "r") print(myFile.read(11)) # Programming myFile.close()7 Nội dung trên lưu một chuỗi vào tệp đầu tiên. Sau đó, nó đọc lại nội dung mới được thêm vào bằng cách đặt lại bộ đệm bên trong. Phương thức myFile = open("myFile.txt", "r") # or open("myFile.txt") print(myFile.read()) myFile.close()12 xóa dữ liệu được lưu tạm thời trong bộ nhớ, vì vậy lần đọc tiếp theo sẽ trả về nội dung mới được thêm vào. Ngoài ra, chúng ta cần sử dụng lệnh gọi phương thức myFile = open("myFile.txt", "r") # or open("myFile.txt") print(myFile.read()) myFile.close()15 để đặt lại con trỏ về đầu vì phương thức myFile = open("myFile.txt", "r") for i, line in enumerate(myFile.readlines()): print(i, line) # line number and content myFile.close()2 đặt nó về cuối Phần kết luậnPython cung cấp một cú pháp đơn giản cho các lập trình viên. Vì vậy, hầu hết các thao tác với tệp đều dễ dàng thực hiện. Tuy nhiên, Python có một số vấn đề với thiết kế thư viện tiêu chuẩn, do đó, có nhiều hàm API cho cùng một thứ. Do đó, bạn phải chọn mô-đun tiêu chuẩn phù hợp nhất theo yêu cầu của bạn Ngoài ra, Python là một ngôn ngữ chậm so với các ngôn ngữ lập trình phổ biến khác. Với suy nghĩ này, hãy đảm bảo tối ưu hóa tập lệnh Python của bạn mà không sử dụng quá nhiều tài nguyên. Ví dụ: bạn có thể tối ưu hóa hiệu suất bằng cách xử lý từng dòng tệp văn bản lớn mà không cần xử lý toàn bộ nội dung cùng một lúc Trong hướng dẫn này, chúng tôi đã thảo luận về xử lý tệp văn bản chung và xử lý tệp nhị phân. Nếu bạn cần xử lý các định dạng tệp cụ thể, bạn nên chọn một thư viện hoặc mô-đun chuẩn tốt hơn. Ví dụ: bạn có thể sử dụng mô-đun chuẩn csv để xử lý tệp CSV và thư viện PyPDF2 để xử lý tệp PDF. Ngoài ra, mô-đun chuẩn pickle giúp bạn lưu trữ (và tải) các đối tượng dữ liệu Python bằng các tệp Python có tốt cho thao tác tệp không?Tệp Python chứa dữ liệu được lưu trữ trong thiết bị lưu trữ máy tính và Python cung cấp các cách dễ dàng để thao tác với các tệp được lưu trữ này .
Đối tượng nào được sử dụng để thao tác với tệp trong Python?Tệp trong Python có thể được thao tác với lớp tệp . Các tệp có một “chế độ” được liên kết. |