Python ghi vào tập tin từng dòng

Giải pháp cho điều này là một chút khó khăn ở đây. hãy bắt đầu với cách tiếp cận cơ bản và sau đó chúng ta sẽ thảo luận về nhược điểm trong đó và xem cách cải thiện nó,

cách tiếp cận cơ bản

  • Mở tệp ở chế độ nối thêm ('a'). Ghi con trỏ trỏ đến cuối tệp
  • Nối '\ n' vào cuối tệp bằng hàm write()
  • Nối dòng đã cho vào tệp bằng hàm write()
  • Đóng tệp

Chà, cách tiếp cận này hoạt động tốt nếu tệp của chúng tôi đã tồn tại và đã có một số dữ liệu trong đó. Nhưng nếu tệp không tồn tại hoặc tệp trống thì cách tiếp cận này sẽ thất bại vì nội dung của tệp sẽ như thế này,

……………………

Dòng mới được thêm vào

Đầu tiên nó viết một dòng trống và sau đó viết dòng của chúng tôi. Nhưng trong trường hợp này, chỉ cần thêm một dòng là được, chúng ta không cần viết '\n' trước đó

Vì vậy, cách tiếp cận cuối cùng của chúng ta sẽ như thế này,

  • Mở tệp ở chế độ chắp thêm và đọc ('a+'). Cả đọc và ghi con trỏ trỏ đến cuối tệp
  • Di chuyển con trỏ đọc đến đầu tệp
  • Đọc một số văn bản từ tệp và kiểm tra xem tệp có trống hay không
  • Nếu tệp không trống, hãy thêm '\n' vào cuối tệp bằng hàm write()
  • Nối một dòng đã cho vào tệp bằng hàm write()
  • Đóng tệp

Giải pháp này sẽ hoạt động tốt trong cả hai trường hợp. Hãy sử dụng giải pháp này để thêm một dòng mới vào cuối tệp

Một trong những tác vụ phổ biến nhất mà bạn có thể thực hiện với Python là đọc và ghi tệp. Cho dù đó là ghi vào tệp văn bản đơn giản, đọc nhật ký máy chủ phức tạp hay thậm chí phân tích dữ liệu byte thô, tất cả các tình huống này đều yêu cầu đọc hoặc ghi tệp

Trong hướng dẫn này, bạn sẽ học

  • Điều gì tạo nên một tệp và tại sao điều đó lại quan trọng trong Python
  • Khái niệm cơ bản về đọc và ghi tệp trong Python
  • Một số kịch bản cơ bản về đọc và ghi tệp

Hướng dẫn này chủ yếu dành cho Pythonistas từ sơ cấp đến trung cấp, nhưng có một số mẹo ở đây mà các lập trình viên cao cấp hơn cũng có thể đánh giá cao

Tiền thưởng miễn phí. Nhấp vào đây để nhận Bảng cheat Python miễn phí của chúng tôi, trang này cho bạn biết kiến ​​thức cơ bản về Python 3, như làm việc với các kiểu dữ liệu, từ điển, danh sách và hàm Python

Lấy bài kiểm tra. Kiểm tra kiến ​​thức của bạn với bài kiểm tra tương tác “Đọc và ghi tệp bằng Python” của chúng tôi. Sau khi hoàn thành, bạn sẽ nhận được điểm số để có thể theo dõi quá trình học tập của mình theo thời gian

Lấy bài kiểm tra "

Tập tin là gì?

Trước khi chúng ta có thể tìm hiểu cách làm việc với các tệp trong Python, điều quan trọng là phải hiểu chính xác tệp là gì và cách các hệ điều hành hiện đại xử lý một số khía cạnh của chúng

Về cốt lõi, một tệp là một tập hợp các byte liền kề được sử dụng để lưu trữ dữ liệu. Dữ liệu này được sắp xếp theo một định dạng cụ thể và có thể là bất kỳ thứ gì đơn giản như tệp văn bản hoặc phức tạp như chương trình thực thi. Cuối cùng, các tệp byte này sau đó được dịch thành mã nhị phân

Pug\r\n
Jack Russell Terrier\r\n
English Springer Spaniel\r\n
German Shepherd\r\n
Staffordshire Bull Terrier\r\n
Cavalier King Charles Spaniel\r\n
Golden Retriever\r\n
West Highland White Terrier\r\n
Boxer\r\n
Border Terrier\r\n
5 và
Pug\r\n
Jack Russell Terrier\r\n
English Springer Spaniel\r\n
German Shepherd\r\n
Staffordshire Bull Terrier\r\n
Cavalier King Charles Spaniel\r\n
Golden Retriever\r\n
West Highland White Terrier\r\n
Boxer\r\n
Border Terrier\r\n
6 để máy tính xử lý dễ dàng hơn

Các tệp trên hầu hết các hệ thống tệp hiện đại bao gồm ba phần chính

  1. tiêu đề. siêu dữ liệu về nội dung của tệp (tên tệp, kích thước, loại, v.v.)
  2. Dữ liệu. nội dung của tệp được viết bởi người tạo hoặc người chỉnh sửa
  3. Cuối tệp (EOF). ký tự đặc biệt cho biết kết thúc tệp
Python ghi vào tập tin từng dòng

Dữ liệu này thể hiện điều gì tùy thuộc vào đặc tả định dạng được sử dụng, thường được biểu thị bằng phần mở rộng. Ví dụ: một tệp có phần mở rộng là

Pug\r\n
Jack Russell Terrier\r\n
English Springer Spaniel\r\n
German Shepherd\r\n
Staffordshire Bull Terrier\r\n
Cavalier King Charles Spaniel\r\n
Golden Retriever\r\n
West Highland White Terrier\r\n
Boxer\r\n
Border Terrier\r\n
7 rất có thể phù hợp với đặc tả Định dạng trao đổi đồ họa. Có hàng trăm, nếu không muốn nói là hàng nghìn phần mở rộng tệp ngoài kia. Đối với hướng dẫn này, bạn sẽ chỉ xử lý các phần mở rộng tệp
Pug\r\n
Jack Russell Terrier\r\n
English Springer Spaniel\r\n
German Shepherd\r\n
Staffordshire Bull Terrier\r\n
Cavalier King Charles Spaniel\r\n
Golden Retriever\r\n
West Highland White Terrier\r\n
Boxer\r\n
Border Terrier\r\n
8 hoặc
Pug\r\n
Jack Russell Terrier\r\n
English Springer Spaniel\r\n
German Shepherd\r\n
Staffordshire Bull Terrier\r\n
Cavalier King Charles Spaniel\r\n
Golden Retriever\r\n
West Highland White Terrier\r\n
Boxer\r\n
Border Terrier\r\n
9

Loại bỏ các quảng cáo

Đường dẫn tệp

Khi bạn truy cập một tệp trên hệ điều hành, cần có đường dẫn tệp. Đường dẫn tệp là một chuỗi đại diện cho vị trí của tệp. Nó được chia thành ba phần chính

  1. Đường dẫn thư mục. vị trí thư mục tệp trên hệ thống tệp nơi các thư mục tiếp theo được phân tách bằng dấu gạch chéo xuôi
    Pug\r
    \n
    Jack Russell Terrier\r
    \n
    English Springer Spaniel\r
    \n
    German Shepherd\r
    \n
    Staffordshire Bull Terrier\r
    \n
    Cavalier King Charles Spaniel\r
    \n
    Golden Retriever\r
    \n
    West Highland White Terrier\r
    \n
    Boxer\r
    \n
    Border Terrier\r
    \n
    
    0 (Unix) hoặc dấu gạch chéo ngược
    Pug\r
    \n
    Jack Russell Terrier\r
    \n
    English Springer Spaniel\r
    \n
    German Shepherd\r
    \n
    Staffordshire Bull Terrier\r
    \n
    Cavalier King Charles Spaniel\r
    \n
    Golden Retriever\r
    \n
    West Highland White Terrier\r
    \n
    Boxer\r
    \n
    Border Terrier\r
    \n
    
    1 (Windows)
  2. Tên tệp. tên thật của tập tin
  3. Sự mở rộng. phần cuối của đường dẫn tệp được đặt trước với dấu chấm (
    Pug\r
    \n
    Jack Russell Terrier\r
    \n
    English Springer Spaniel\r
    \n
    German Shepherd\r
    \n
    Staffordshire Bull Terrier\r
    \n
    Cavalier King Charles Spaniel\r
    \n
    Golden Retriever\r
    \n
    West Highland White Terrier\r
    \n
    Boxer\r
    \n
    Border Terrier\r
    \n
    
    2) được sử dụng để chỉ loại tệp

Đây là một ví dụ nhanh. Giả sử bạn có một tệp nằm trong cấu trúc tệp như thế này

________số 8

Giả sử bạn muốn truy cập tệp

Pug\r
\n
Jack Russell Terrier\r
\n
English Springer Spaniel\r
\n
German Shepherd\r
\n
Staffordshire Bull Terrier\r
\n
Cavalier King Charles Spaniel\r
\n
Golden Retriever\r
\n
West Highland White Terrier\r
\n
Boxer\r
\n
Border Terrier\r
\n
3 và vị trí hiện tại của bạn nằm trong cùng thư mục với
Pug\r
\n
Jack Russell Terrier\r
\n
English Springer Spaniel\r
\n
German Shepherd\r
\n
Staffordshire Bull Terrier\r
\n
Cavalier King Charles Spaniel\r
\n
Golden Retriever\r
\n
West Highland White Terrier\r
\n
Boxer\r
\n
Border Terrier\r
\n
4. Để truy cập tệp, bạn cần đi qua thư mục
Pug\r
\n
Jack Russell Terrier\r
\n
English Springer Spaniel\r
\n
German Shepherd\r
\n
Staffordshire Bull Terrier\r
\n
Cavalier King Charles Spaniel\r
\n
Golden Retriever\r
\n
West Highland White Terrier\r
\n
Boxer\r
\n
Border Terrier\r
\n
4 rồi đến thư mục
Pug\r
\n
Jack Russell Terrier\r
\n
English Springer Spaniel\r
\n
German Shepherd\r
\n
Staffordshire Bull Terrier\r
\n
Cavalier King Charles Spaniel\r
\n
Golden Retriever\r
\n
West Highland White Terrier\r
\n
Boxer\r
\n
Border Terrier\r
\n
6, cuối cùng đến tệp
Pug\r
\n
Jack Russell Terrier\r
\n
English Springer Spaniel\r
\n
German Shepherd\r
\n
Staffordshire Bull Terrier\r
\n
Cavalier King Charles Spaniel\r
\n
Golden Retriever\r
\n
West Highland White Terrier\r
\n
Boxer\r
\n
Border Terrier\r
\n
3. Đường dẫn thư mục là
Pug\r
\n
Jack Russell Terrier\r
\n
English Springer Spaniel\r
\n
German Shepherd\r
\n
Staffordshire Bull Terrier\r
\n
Cavalier King Charles Spaniel\r
\n
Golden Retriever\r
\n
West Highland White Terrier\r
\n
Boxer\r
\n
Border Terrier\r
\n
8. Tên tệp là
Pug\r
\n
Jack Russell Terrier\r
\n
English Springer Spaniel\r
\n
German Shepherd\r
\n
Staffordshire Bull Terrier\r
\n
Cavalier King Charles Spaniel\r
\n
Golden Retriever\r
\n
West Highland White Terrier\r
\n
Boxer\r
\n
Border Terrier\r
\n
9. Phần mở rộng tệp là
Pug\r\n
Jack Russell Terrier\r\n
English Springer Spaniel\r\n
German Shepherd\r\n
Staffordshire Bull Terrier\r\n
Cavalier King Charles Spaniel\r\n
Golden Retriever\r\n
West Highland White Terrier\r\n
Boxer\r\n
Border Terrier\r\n
7. Vì vậy, đường dẫn đầy đủ là
Pug\r\n
Jack Russell Terrier\r\n
English Springer Spaniel\r\n
German Shepherd\r\n
Staffordshire Bull Terrier\r\n
Cavalier King Charles Spaniel\r\n
Golden Retriever\r\n
West Highland White Terrier\r\n
Boxer\r\n
Border Terrier\r\n
71

Bây giờ, giả sử rằng vị trí hiện tại hoặc thư mục làm việc hiện tại của bạn (cwd) nằm trong thư mục

Pug\r
\n
Jack Russell Terrier\r
\n
English Springer Spaniel\r
\n
German Shepherd\r
\n
Staffordshire Bull Terrier\r
\n
Cavalier King Charles Spaniel\r
\n
Golden Retriever\r
\n
West Highland White Terrier\r
\n
Boxer\r
\n
Border Terrier\r
\n
6 của cấu trúc thư mục ví dụ của chúng tôi. Thay vì tham chiếu đến
Pug\r
\n
Jack Russell Terrier\r
\n
English Springer Spaniel\r
\n
German Shepherd\r
\n
Staffordshire Bull Terrier\r
\n
Cavalier King Charles Spaniel\r
\n
Golden Retriever\r
\n
West Highland White Terrier\r
\n
Boxer\r
\n
Border Terrier\r
\n
3 bằng đường dẫn đầy đủ của
Pug\r\n
Jack Russell Terrier\r\n
English Springer Spaniel\r\n
German Shepherd\r\n
Staffordshire Bull Terrier\r\n
Cavalier King Charles Spaniel\r\n
Golden Retriever\r\n
West Highland White Terrier\r\n
Boxer\r\n
Border Terrier\r\n
71, tệp có thể được tham chiếu đơn giản bằng tên tệp và phần mở rộng
Pug\r
\n
Jack Russell Terrier\r
\n
English Springer Spaniel\r
\n
German Shepherd\r
\n
Staffordshire Bull Terrier\r
\n
Cavalier King Charles Spaniel\r
\n
Golden Retriever\r
\n
West Highland White Terrier\r
\n
Boxer\r
\n
Border Terrier\r
\n
3

Pug\r\n
Jack Russell Terrier\r\n
English Springer Spaniel\r\n
German Shepherd\r\n
Staffordshire Bull Terrier\r\n
Cavalier King Charles Spaniel\r\n
Golden Retriever\r\n
West Highland White Terrier\r\n
Boxer\r\n
Border Terrier\r\n
2

Nhưng còn

Pug\r\n
Jack Russell Terrier\r\n
English Springer Spaniel\r\n
German Shepherd\r\n
Staffordshire Bull Terrier\r\n
Cavalier King Charles Spaniel\r\n
Golden Retriever\r\n
West Highland White Terrier\r\n
Boxer\r\n
Border Terrier\r\n
76 thì sao? . Điều này có nghĩa là
Pug\r\n
Jack Russell Terrier\r\n
English Springer Spaniel\r\n
German Shepherd\r\n
Staffordshire Bull Terrier\r\n
Cavalier King Charles Spaniel\r\n
Golden Retriever\r\n
West Highland White Terrier\r\n
Boxer\r\n
Border Terrier\r\n
78 sẽ tham chiếu tệp
Pug\r\n
Jack Russell Terrier\r\n
English Springer Spaniel\r\n
German Shepherd\r\n
Staffordshire Bull Terrier\r\n
Cavalier King Charles Spaniel\r\n
Golden Retriever\r\n
West Highland White Terrier\r\n
Boxer\r\n
Border Terrier\r\n
76 từ thư mục của
Pug\r
\n
Jack Russell Terrier\r
\n
English Springer Spaniel\r
\n
German Shepherd\r
\n
Staffordshire Bull Terrier\r
\n
Cavalier King Charles Spaniel\r
\n
Golden Retriever\r
\n
West Highland White Terrier\r
\n
Boxer\r
\n
Border Terrier\r
\n
6

Pug\r\n
Jack Russell Terrier\r\n
English Springer Spaniel\r\n
German Shepherd\r\n
Staffordshire Bull Terrier\r\n
Cavalier King Charles Spaniel\r\n
Golden Retriever\r\n
West Highland White Terrier\r\n
Boxer\r\n
Border Terrier\r\n
8

Dấu chấm đôi (

Pug\r\n
Jack Russell Terrier\r\n
English Springer Spaniel\r\n
German Shepherd\r\n
Staffordshire Bull Terrier\r\n
Cavalier King Charles Spaniel\r\n
Golden Retriever\r\n
West Highland White Terrier\r\n
Boxer\r\n
Border Terrier\r\n
77) có thể được nối với nhau để duyệt qua nhiều thư mục phía trên thư mục hiện tại. Ví dụ: để truy cập
Pug\r\n
Jack Russell Terrier\r\n
English Springer Spaniel\r\n
German Shepherd\r\n
Staffordshire Bull Terrier\r\n
Cavalier King Charles Spaniel\r\n
Golden Retriever\r\n
West Highland White Terrier\r\n
Boxer\r\n
Border Terrier\r\n
02 từ thư mục
Pug\r
\n
Jack Russell Terrier\r
\n
English Springer Spaniel\r
\n
German Shepherd\r
\n
Staffordshire Bull Terrier\r
\n
Cavalier King Charles Spaniel\r
\n
Golden Retriever\r
\n
West Highland White Terrier\r
\n
Boxer\r
\n
Border Terrier\r
\n
6, bạn sẽ sử dụng
Pug\r\n
Jack Russell Terrier\r\n
English Springer Spaniel\r\n
German Shepherd\r\n
Staffordshire Bull Terrier\r\n
Cavalier King Charles Spaniel\r\n
Golden Retriever\r\n
West Highland White Terrier\r\n
Boxer\r\n
Border Terrier\r\n
04

kết thúc dòng

Một vấn đề thường gặp khi làm việc với dữ liệu tệp là biểu diễn của một dòng mới hoặc kết thúc dòng. Kết thúc dòng có nguồn gốc từ thời Mã Morse, khi một dấu hiệu cụ thể được sử dụng để thông báo kết thúc truyền hoặc kết thúc dòng

Sau đó, điều này đã được cả Tổ chức Tiêu chuẩn hóa Quốc tế (ISO) và Hiệp hội Tiêu chuẩn Hoa Kỳ (ASA) chuẩn hóa cho máy in từ xa. Tiêu chuẩn ASA quy định rằng các kết thúc dòng phải sử dụng chuỗi các ký tự Trả về vận chuyển (

Pug\r\n
Jack Russell Terrier\r\n
English Springer Spaniel\r\n
German Shepherd\r\n
Staffordshire Bull Terrier\r\n
Cavalier King Charles Spaniel\r\n
Golden Retriever\r\n
West Highland White Terrier\r\n
Boxer\r\n
Border Terrier\r\n
05 hoặc
Pug\r\n
Jack Russell Terrier\r\n
English Springer Spaniel\r\n
German Shepherd\r\n
Staffordshire Bull Terrier\r\n
Cavalier King Charles Spaniel\r\n
Golden Retriever\r\n
West Highland White Terrier\r\n
Boxer\r\n
Border Terrier\r\n
06) và Nguồn cấp dữ liệu theo dòng (
Pug\r\n
Jack Russell Terrier\r\n
English Springer Spaniel\r\n
German Shepherd\r\n
Staffordshire Bull Terrier\r\n
Cavalier King Charles Spaniel\r\n
Golden Retriever\r\n
West Highland White Terrier\r\n
Boxer\r\n
Border Terrier\r\n
07 hoặc
Pug\r\n
Jack Russell Terrier\r\n
English Springer Spaniel\r\n
German Shepherd\r\n
Staffordshire Bull Terrier\r\n
Cavalier King Charles Spaniel\r\n
Golden Retriever\r\n
West Highland White Terrier\r\n
Boxer\r\n
Border Terrier\r\n
08) (
Pug\r\n
Jack Russell Terrier\r\n
English Springer Spaniel\r\n
German Shepherd\r\n
Staffordshire Bull Terrier\r\n
Cavalier King Charles Spaniel\r\n
Golden Retriever\r\n
West Highland White Terrier\r\n
Boxer\r\n
Border Terrier\r\n
09 hoặc
Pug\r\n
Jack Russell Terrier\r\n
English Springer Spaniel\r\n
German Shepherd\r\n
Staffordshire Bull Terrier\r\n
Cavalier King Charles Spaniel\r\n
Golden Retriever\r\n
West Highland White Terrier\r\n
Boxer\r\n
Border Terrier\r\n
80). Tuy nhiên, tiêu chuẩn ISO cho phép cả ký tự
Pug\r\n
Jack Russell Terrier\r\n
English Springer Spaniel\r\n
German Shepherd\r\n
Staffordshire Bull Terrier\r\n
Cavalier King Charles Spaniel\r\n
Golden Retriever\r\n
West Highland White Terrier\r\n
Boxer\r\n
Border Terrier\r\n
09 hoặc chỉ ký tự
Pug\r\n
Jack Russell Terrier\r\n
English Springer Spaniel\r\n
German Shepherd\r\n
Staffordshire Bull Terrier\r\n
Cavalier King Charles Spaniel\r\n
Golden Retriever\r\n
West Highland White Terrier\r\n
Boxer\r\n
Border Terrier\r\n
07

Windows sử dụng các ký tự

Pug\r\n
Jack Russell Terrier\r\n
English Springer Spaniel\r\n
German Shepherd\r\n
Staffordshire Bull Terrier\r\n
Cavalier King Charles Spaniel\r\n
Golden Retriever\r\n
West Highland White Terrier\r\n
Boxer\r\n
Border Terrier\r\n
09 để biểu thị một dòng mới, trong khi Unix và các phiên bản Mac mới hơn chỉ sử dụng ký tự
Pug\r\n
Jack Russell Terrier\r\n
English Springer Spaniel\r\n
German Shepherd\r\n
Staffordshire Bull Terrier\r\n
Cavalier King Charles Spaniel\r\n
Golden Retriever\r\n
West Highland White Terrier\r\n
Boxer\r\n
Border Terrier\r\n
07. Điều này có thể gây ra một số rắc rối khi bạn đang xử lý tệp trên một hệ điều hành khác với nguồn của tệp. Đây là một ví dụ nhanh. Giả sử chúng ta kiểm tra tệp
Pug\r\n
Jack Russell Terrier\r\n
English Springer Spaniel\r\n
German Shepherd\r\n
Staffordshire Bull Terrier\r\n
Cavalier King Charles Spaniel\r\n
Golden Retriever\r\n
West Highland White Terrier\r\n
Boxer\r\n
Border Terrier\r\n
76 được tạo trên hệ thống Windows

Pug\r\n
Jack Russell Terrier\r\n
English Springer Spaniel\r\n
German Shepherd\r\n
Staffordshire Bull Terrier\r\n
Cavalier King Charles Spaniel\r\n
Golden Retriever\r\n
West Highland White Terrier\r\n
Boxer\r\n
Border Terrier\r\n

Đầu ra tương tự này sẽ được diễn giải khác nhau trên thiết bị Unix

Pug\r
\n
Jack Russell Terrier\r
\n
English Springer Spaniel\r
\n
German Shepherd\r
\n
Staffordshire Bull Terrier\r
\n
Cavalier King Charles Spaniel\r
\n
Golden Retriever\r
\n
West Highland White Terrier\r
\n
Boxer\r
\n
Border Terrier\r
\n

Điều này có thể làm cho việc lặp lại trên mỗi dòng trở nên khó khăn và bạn có thể cần tính đến các tình huống như thế này

Mã hóa ký tự

Một vấn đề phổ biến khác mà bạn có thể gặp phải là mã hóa dữ liệu byte. Mã hóa là bản dịch từ dữ liệu byte sang ký tự có thể đọc được của con người. Điều này thường được thực hiện bằng cách gán một giá trị số để đại diện cho một ký tự. Hai bảng mã phổ biến nhất là Định dạng ASCII và UNICODE. ASCII chỉ có thể lưu trữ 128 ký tự, trong khi Unicode có thể chứa tới 1.114.112 ký tự

ASCII thực sự là một tập hợp con của Unicode (UTF-8), có nghĩa là ASCII và Unicode chia sẻ cùng giá trị số thành ký tự. Điều quan trọng cần lưu ý là việc phân tích tệp có mã hóa ký tự không chính xác có thể dẫn đến lỗi hoặc trình bày sai ký tự. Ví dụ: nếu một tệp được tạo bằng mã hóa UTF-8 và bạn cố phân tích cú pháp tệp đó bằng mã hóa ASCII, nếu có một ký tự nằm ngoài 128 giá trị đó thì sẽ xảy ra lỗi

Loại bỏ các quảng cáo

Mở và đóng tệp bằng Python

Khi muốn làm việc với một tệp, việc đầu tiên cần làm là mở tệp đó. Điều này được thực hiện bằng cách gọi hàm tích hợp sẵn

Pug\r\n
Jack Russell Terrier\r\n
English Springer Spaniel\r\n
German Shepherd\r\n
Staffordshire Bull Terrier\r\n
Cavalier King Charles Spaniel\r\n
Golden Retriever\r\n
West Highland White Terrier\r\n
Boxer\r\n
Border Terrier\r\n
86.
Pug\r\n
Jack Russell Terrier\r\n
English Springer Spaniel\r\n
German Shepherd\r\n
Staffordshire Bull Terrier\r\n
Cavalier King Charles Spaniel\r\n
Golden Retriever\r\n
West Highland White Terrier\r\n
Boxer\r\n
Border Terrier\r\n
86 có một đối số bắt buộc duy nhất là đường dẫn đến tệp.
Pug\r\n
Jack Russell Terrier\r\n
English Springer Spaniel\r\n
German Shepherd\r\n
Staffordshire Bull Terrier\r\n
Cavalier King Charles Spaniel\r\n
Golden Retriever\r\n
West Highland White Terrier\r\n
Boxer\r\n
Border Terrier\r\n
86 có một lần trả về, đối tượng tệp

Pug\r\n
Jack Russell Terrier\r\n
English Springer Spaniel\r\n
German Shepherd\r\n
Staffordshire Bull Terrier\r\n
Cavalier King Charles Spaniel\r\n
Golden Retriever\r\n
West Highland White Terrier\r\n
Boxer\r\n
Border Terrier\r\n
7

Sau khi bạn mở một tệp, điều tiếp theo cần tìm hiểu là cách đóng tệp đó

Cảnh báo. Bạn phải luôn đảm bảo rằng tệp đang mở được đóng đúng cách. Để tìm hiểu lý do tại sao, hãy xem Tại sao việc đóng tệp trong Python lại quan trọng?

Điều quan trọng cần nhớ là bạn có trách nhiệm đóng tệp. Trong hầu hết các trường hợp, khi chấm dứt ứng dụng hoặc tập lệnh, tệp sẽ bị đóng cuối cùng. Tuy nhiên, không có gì đảm bảo chính xác khi nào điều đó sẽ xảy ra. Điều này có thể dẫn đến hành vi không mong muốn bao gồm rò rỉ tài nguyên. Đây cũng là một cách thực hành tốt nhất trong Python (Pythonic) để đảm bảo rằng mã của bạn hoạt động theo cách được xác định rõ và giảm mọi hành vi không mong muốn

Khi bạn đang thao tác với một tệp, có hai cách bạn có thể sử dụng để đảm bảo rằng tệp được đóng đúng cách, ngay cả khi gặp lỗi. Cách đầu tiên để đóng tệp là sử dụng khối

Pug\r\n
Jack Russell Terrier\r\n
English Springer Spaniel\r\n
German Shepherd\r\n
Staffordshire Bull Terrier\r\n
Cavalier King Charles Spaniel\r\n
Golden Retriever\r\n
West Highland White Terrier\r\n
Boxer\r\n
Border Terrier\r\n
89

Pug\r\n
Jack Russell Terrier\r\n
English Springer Spaniel\r\n
German Shepherd\r\n
Staffordshire Bull Terrier\r\n
Cavalier King Charles Spaniel\r\n
Golden Retriever\r\n
West Highland White Terrier\r\n
Boxer\r\n
Border Terrier\r\n
0

Nếu bạn không biết khối

Pug\r\n
Jack Russell Terrier\r\n
English Springer Spaniel\r\n
German Shepherd\r\n
Staffordshire Bull Terrier\r\n
Cavalier King Charles Spaniel\r\n
Golden Retriever\r\n
West Highland White Terrier\r\n
Boxer\r\n
Border Terrier\r\n
89 là gì, hãy xem Python Exceptions. Một lời giới thiệu

Cách thứ hai để đóng tệp là sử dụng câu lệnh

Pug\r
\n
Jack Russell Terrier\r
\n
English Springer Spaniel\r
\n
German Shepherd\r
\n
Staffordshire Bull Terrier\r
\n
Cavalier King Charles Spaniel\r
\n
Golden Retriever\r
\n
West Highland White Terrier\r
\n
Boxer\r
\n
Border Terrier\r
\n
31

Pug\r\n
Jack Russell Terrier\r\n
English Springer Spaniel\r\n
German Shepherd\r\n
Staffordshire Bull Terrier\r\n
Cavalier King Charles Spaniel\r\n
Golden Retriever\r\n
West Highland White Terrier\r\n
Boxer\r\n
Border Terrier\r\n
8

Câu lệnh

Pug\r
\n
Jack Russell Terrier\r
\n
English Springer Spaniel\r
\n
German Shepherd\r
\n
Staffordshire Bull Terrier\r
\n
Cavalier King Charles Spaniel\r
\n
Golden Retriever\r
\n
West Highland White Terrier\r
\n
Boxer\r
\n
Border Terrier\r
\n
31 tự động đóng tệp sau khi nó rời khỏi khối
Pug\r
\n
Jack Russell Terrier\r
\n
English Springer Spaniel\r
\n
German Shepherd\r
\n
Staffordshire Bull Terrier\r
\n
Cavalier King Charles Spaniel\r
\n
Golden Retriever\r
\n
West Highland White Terrier\r
\n
Boxer\r
\n
Border Terrier\r
\n
31, ngay cả trong trường hợp có lỗi. Tôi thực sự khuyên bạn nên sử dụng câu lệnh
Pug\r
\n
Jack Russell Terrier\r
\n
English Springer Spaniel\r
\n
German Shepherd\r
\n
Staffordshire Bull Terrier\r
\n
Cavalier King Charles Spaniel\r
\n
Golden Retriever\r
\n
West Highland White Terrier\r
\n
Boxer\r
\n
Border Terrier\r
\n
31 càng nhiều càng tốt, vì nó cho phép mã sạch hơn và giúp bạn xử lý mọi lỗi không mong muốn dễ dàng hơn

Rất có thể, bạn cũng sẽ muốn sử dụng đối số vị trí thứ hai,

Pug\r
\n
Jack Russell Terrier\r
\n
English Springer Spaniel\r
\n
German Shepherd\r
\n
Staffordshire Bull Terrier\r
\n
Cavalier King Charles Spaniel\r
\n
Golden Retriever\r
\n
West Highland White Terrier\r
\n
Boxer\r
\n
Border Terrier\r
\n
35. Đối số này là một chuỗi chứa nhiều ký tự để thể hiện cách bạn muốn mở tệp. Mặc định và phổ biến nhất là
Pug\r
\n
Jack Russell Terrier\r
\n
English Springer Spaniel\r
\n
German Shepherd\r
\n
Staffordshire Bull Terrier\r
\n
Cavalier King Charles Spaniel\r
\n
Golden Retriever\r
\n
West Highland White Terrier\r
\n
Boxer\r
\n
Border Terrier\r
\n
36, đại diện cho việc mở tệp ở chế độ chỉ đọc dưới dạng tệp văn bản

Pug\r
\n
Jack Russell Terrier\r
\n
English Springer Spaniel\r
\n
German Shepherd\r
\n
Staffordshire Bull Terrier\r
\n
Cavalier King Charles Spaniel\r
\n
Golden Retriever\r
\n
West Highland White Terrier\r
\n
Boxer\r
\n
Border Terrier\r
\n
3

Các tùy chọn khác cho các chế độ được ghi lại đầy đủ trực tuyến, nhưng những tùy chọn được sử dụng phổ biến nhất là những tùy chọn sau

Ý nghĩa ký tự

Pug\r
\n
Jack Russell Terrier\r
\n
English Springer Spaniel\r
\n
German Shepherd\r
\n
Staffordshire Bull Terrier\r
\n
Cavalier King Charles Spaniel\r
\n
Golden Retriever\r
\n
West Highland White Terrier\r
\n
Boxer\r
\n
Border Terrier\r
\n
36Mở để đọc (mặc định)
Pug\r
\n
Jack Russell Terrier\r
\n
English Springer Spaniel\r
\n
German Shepherd\r
\n
Staffordshire Bull Terrier\r
\n
Cavalier King Charles Spaniel\r
\n
Golden Retriever\r
\n
West Highland White Terrier\r
\n
Boxer\r
\n
Border Terrier\r
\n
38Mở để ghi, cắt ngắn (ghi đè) tệp trước
Pug\r
\n
Jack Russell Terrier\r
\n
English Springer Spaniel\r
\n
German Shepherd\r
\n
Staffordshire Bull Terrier\r
\n
Cavalier King Charles Spaniel\r
\n
Golden Retriever\r
\n
West Highland White Terrier\r
\n
Boxer\r
\n
Border Terrier\r
\n
39 hoặc
Pug\r
\n
Jack Russell Terrier\r
\n
English Springer Spaniel\r
\n
German Shepherd\r
\n
Staffordshire Bull Terrier\r
\n
Cavalier King Charles Spaniel\r
\n
Golden Retriever\r
\n
West Highland White Terrier\r
\n
Boxer\r
\n
Border Terrier\r
\n
40Mở ở chế độ nhị phân (đọc/ghi bằng dữ liệu byte)

Hãy quay lại và nói một chút về các đối tượng tệp. Một đối tượng tập tin là

“một đối tượng hiển thị API hướng tệp (với các phương thức như

Pug\r
\n
Jack Russell Terrier\r
\n
English Springer Spaniel\r
\n
German Shepherd\r
\n
Staffordshire Bull Terrier\r
\n
Cavalier King Charles Spaniel\r
\n
Golden Retriever\r
\n
West Highland White Terrier\r
\n
Boxer\r
\n
Border Terrier\r
\n
41 hoặc
Pug\r
\n
Jack Russell Terrier\r
\n
English Springer Spaniel\r
\n
German Shepherd\r
\n
Staffordshire Bull Terrier\r
\n
Cavalier King Charles Spaniel\r
\n
Golden Retriever\r
\n
West Highland White Terrier\r
\n
Boxer\r
\n
Border Terrier\r
\n
42) cho tài nguyên cơ bản. " (Nguồn)

Có ba loại đối tượng tệp khác nhau

  • tệp văn bản
  • Tệp nhị phân được đệm
  • Tệp nhị phân thô

Mỗi loại tệp này được xác định trong mô-đun

Pug\r
\n
Jack Russell Terrier\r
\n
English Springer Spaniel\r
\n
German Shepherd\r
\n
Staffordshire Bull Terrier\r
\n
Cavalier King Charles Spaniel\r
\n
Golden Retriever\r
\n
West Highland White Terrier\r
\n
Boxer\r
\n
Border Terrier\r
\n
43. Dưới đây là tóm tắt nhanh về cách mọi thứ sắp xếp

Loại bỏ các quảng cáo

Các loại tệp văn bản

Tệp văn bản là tệp phổ biến nhất mà bạn sẽ gặp. Dưới đây là một số ví dụ về cách các tệp này được mở

Pug\r
\n
Jack Russell Terrier\r
\n
English Springer Spaniel\r
\n
German Shepherd\r
\n
Staffordshire Bull Terrier\r
\n
Cavalier King Charles Spaniel\r
\n
Golden Retriever\r
\n
West Highland White Terrier\r
\n
Boxer\r
\n
Border Terrier\r
\n
4

Với các loại tệp này,

Pug\r\n
Jack Russell Terrier\r\n
English Springer Spaniel\r\n
German Shepherd\r\n
Staffordshire Bull Terrier\r\n
Cavalier King Charles Spaniel\r\n
Golden Retriever\r\n
West Highland White Terrier\r\n
Boxer\r\n
Border Terrier\r\n
86 sẽ trả về một đối tượng tệp
Pug\r
\n
Jack Russell Terrier\r
\n
English Springer Spaniel\r
\n
German Shepherd\r
\n
Staffordshire Bull Terrier\r
\n
Cavalier King Charles Spaniel\r
\n
Golden Retriever\r
\n
West Highland White Terrier\r
\n
Boxer\r
\n
Border Terrier\r
\n
45

>>>

Pug\r\n
Jack Russell Terrier\r\n
English Springer Spaniel\r\n
German Shepherd\r\n
Staffordshire Bull Terrier\r\n
Cavalier King Charles Spaniel\r\n
Golden Retriever\r\n
West Highland White Terrier\r\n
Boxer\r\n
Border Terrier\r\n
20

Đây là đối tượng tệp mặc định được trả về bởi

Pug\r\n
Jack Russell Terrier\r\n
English Springer Spaniel\r\n
German Shepherd\r\n
Staffordshire Bull Terrier\r\n
Cavalier King Charles Spaniel\r\n
Golden Retriever\r\n
West Highland White Terrier\r\n
Boxer\r\n
Border Terrier\r\n
86

Các loại tệp nhị phân được đệm

Loại tệp nhị phân được đệm được sử dụng để đọc và ghi tệp nhị phân. Dưới đây là một số ví dụ về cách các tệp này được mở

Pug\r\n
Jack Russell Terrier\r\n
English Springer Spaniel\r\n
German Shepherd\r\n
Staffordshire Bull Terrier\r\n
Cavalier King Charles Spaniel\r\n
Golden Retriever\r\n
West Highland White Terrier\r\n
Boxer\r\n
Border Terrier\r\n
21

Với các loại tệp này,

Pug\r\n
Jack Russell Terrier\r\n
English Springer Spaniel\r\n
German Shepherd\r\n
Staffordshire Bull Terrier\r\n
Cavalier King Charles Spaniel\r\n
Golden Retriever\r\n
West Highland White Terrier\r\n
Boxer\r\n
Border Terrier\r\n
86 sẽ trả về đối tượng tệp
Pug\r
\n
Jack Russell Terrier\r
\n
English Springer Spaniel\r
\n
German Shepherd\r
\n
Staffordshire Bull Terrier\r
\n
Cavalier King Charles Spaniel\r
\n
Golden Retriever\r
\n
West Highland White Terrier\r
\n
Boxer\r
\n
Border Terrier\r
\n
48 hoặc
Pug\r
\n
Jack Russell Terrier\r
\n
English Springer Spaniel\r
\n
German Shepherd\r
\n
Staffordshire Bull Terrier\r
\n
Cavalier King Charles Spaniel\r
\n
Golden Retriever\r
\n
West Highland White Terrier\r
\n
Boxer\r
\n
Border Terrier\r
\n
49

>>>

Pug\r\n
Jack Russell Terrier\r\n
English Springer Spaniel\r\n
German Shepherd\r\n
Staffordshire Bull Terrier\r\n
Cavalier King Charles Spaniel\r\n
Golden Retriever\r\n
West Highland White Terrier\r\n
Boxer\r\n
Border Terrier\r\n
22

Các loại tệp thô

Một loại tệp thô là

“thường được sử dụng như một khối xây dựng cấp thấp cho các luồng văn bản và nhị phân. " (Nguồn)

Do đó nó thường không được sử dụng

Đây là một ví dụ về cách các tệp này được mở

Pug\r\n
Jack Russell Terrier\r\n
English Springer Spaniel\r\n
German Shepherd\r\n
Staffordshire Bull Terrier\r\n
Cavalier King Charles Spaniel\r\n
Golden Retriever\r\n
West Highland White Terrier\r\n
Boxer\r\n
Border Terrier\r\n
23

Với các loại tệp này,

Pug\r\n
Jack Russell Terrier\r\n
English Springer Spaniel\r\n
German Shepherd\r\n
Staffordshire Bull Terrier\r\n
Cavalier King Charles Spaniel\r\n
Golden Retriever\r\n
West Highland White Terrier\r\n
Boxer\r\n
Border Terrier\r\n
86 sẽ trả về đối tượng tệp
Pug\r\n
Jack Russell Terrier\r\n
English Springer Spaniel\r\n
German Shepherd\r\n
Staffordshire Bull Terrier\r\n
Cavalier King Charles Spaniel\r\n
Golden Retriever\r\n
West Highland White Terrier\r\n
Boxer\r\n
Border Terrier\r\n
201

>>>

Pug\r\n
Jack Russell Terrier\r\n
English Springer Spaniel\r\n
German Shepherd\r\n
Staffordshire Bull Terrier\r\n
Cavalier King Charles Spaniel\r\n
Golden Retriever\r\n
West Highland White Terrier\r\n
Boxer\r\n
Border Terrier\r\n
24

Đọc và ghi tệp đã mở

Khi bạn đã mở một tệp, bạn sẽ muốn đọc hoặc ghi vào tệp. Trước hết, hãy đọc một tập tin. Có nhiều phương thức có thể được gọi trên một đối tượng tệp để giúp bạn giải quyết

MethodWhat It Does

Pug\r\n
Jack Russell Terrier\r\n
English Springer Spaniel\r\n
German Shepherd\r\n
Staffordshire Bull Terrier\r\n
Cavalier King Charles Spaniel\r\n
Golden Retriever\r\n
West Highland White Terrier\r\n
Boxer\r\n
Border Terrier\r\n
202Điều này đọc từ tệp dựa trên số lượng byte
Pug\r\n
Jack Russell Terrier\r\n
English Springer Spaniel\r\n
German Shepherd\r\n
Staffordshire Bull Terrier\r\n
Cavalier King Charles Spaniel\r\n
Golden Retriever\r\n
West Highland White Terrier\r\n
Boxer\r\n
Border Terrier\r\n
203. Nếu không có đối số nào được chuyển hoặc
Pug\r\n
Jack Russell Terrier\r\n
English Springer Spaniel\r\n
German Shepherd\r\n
Staffordshire Bull Terrier\r\n
Cavalier King Charles Spaniel\r\n
Golden Retriever\r\n
West Highland White Terrier\r\n
Boxer\r\n
Border Terrier\r\n
204 hoặc
Pug\r\n
Jack Russell Terrier\r\n
English Springer Spaniel\r\n
German Shepherd\r\n
Staffordshire Bull Terrier\r\n
Cavalier King Charles Spaniel\r\n
Golden Retriever\r\n
West Highland White Terrier\r\n
Boxer\r\n
Border Terrier\r\n
205 được chuyển, thì toàn bộ tệp sẽ được đọc.
Pug\r\n
Jack Russell Terrier\r\n
English Springer Spaniel\r\n
German Shepherd\r\n
Staffordshire Bull Terrier\r\n
Cavalier King Charles Spaniel\r\n
Golden Retriever\r\n
West Highland White Terrier\r\n
Boxer\r\n
Border Terrier\r\n
206Điều này đọc tối đa
Pug\r\n
Jack Russell Terrier\r\n
English Springer Spaniel\r\n
German Shepherd\r\n
Staffordshire Bull Terrier\r\n
Cavalier King Charles Spaniel\r\n
Golden Retriever\r\n
West Highland White Terrier\r\n
Boxer\r\n
Border Terrier\r\n
203 số ký tự từ dòng. Điều này tiếp tục đến cuối dòng và sau đó quấn lại. Nếu không có đối số nào được chuyển hoặc
Pug\r\n
Jack Russell Terrier\r\n
English Springer Spaniel\r\n
German Shepherd\r\n
Staffordshire Bull Terrier\r\n
Cavalier King Charles Spaniel\r\n
Golden Retriever\r\n
West Highland White Terrier\r\n
Boxer\r\n
Border Terrier\r\n
204 hoặc
Pug\r\n
Jack Russell Terrier\r\n
English Springer Spaniel\r\n
German Shepherd\r\n
Staffordshire Bull Terrier\r\n
Cavalier King Charles Spaniel\r\n
Golden Retriever\r\n
West Highland White Terrier\r\n
Boxer\r\n
Border Terrier\r\n
205 được chuyển, thì toàn bộ dòng (hoặc phần còn lại của dòng) được đọc.
Pug\r\n
Jack Russell Terrier\r\n
English Springer Spaniel\r\n
German Shepherd\r\n
Staffordshire Bull Terrier\r\n
Cavalier King Charles Spaniel\r\n
Golden Retriever\r\n
West Highland White Terrier\r\n
Boxer\r\n
Border Terrier\r\n
210Điều này đọc các dòng còn lại từ đối tượng tệp và trả về chúng dưới dạng danh sách

Sử dụng cùng một tệp

Pug\r\n
Jack Russell Terrier\r\n
English Springer Spaniel\r\n
German Shepherd\r\n
Staffordshire Bull Terrier\r\n
Cavalier King Charles Spaniel\r\n
Golden Retriever\r\n
West Highland White Terrier\r\n
Boxer\r\n
Border Terrier\r\n
76 mà bạn đã sử dụng ở trên, hãy xem qua một số ví dụ về cách sử dụng các phương thức này. Đây là một ví dụ về cách mở và đọc toàn bộ tệp bằng cách sử dụng
Pug\r\n
Jack Russell Terrier\r\n
English Springer Spaniel\r\n
German Shepherd\r\n
Staffordshire Bull Terrier\r\n
Cavalier King Charles Spaniel\r\n
Golden Retriever\r\n
West Highland White Terrier\r\n
Boxer\r\n
Border Terrier\r\n
212

>>>

Pug\r\n
Jack Russell Terrier\r\n
English Springer Spaniel\r\n
German Shepherd\r\n
Staffordshire Bull Terrier\r\n
Cavalier King Charles Spaniel\r\n
Golden Retriever\r\n
West Highland White Terrier\r\n
Boxer\r\n
Border Terrier\r\n
25

Đây là một ví dụ về cách đọc 5 byte của một dòng mỗi lần bằng phương thức Python

Pug\r\n
Jack Russell Terrier\r\n
English Springer Spaniel\r\n
German Shepherd\r\n
Staffordshire Bull Terrier\r\n
Cavalier King Charles Spaniel\r\n
Golden Retriever\r\n
West Highland White Terrier\r\n
Boxer\r\n
Border Terrier\r\n
213

>>>

Pug\r\n
Jack Russell Terrier\r\n
English Springer Spaniel\r\n
German Shepherd\r\n
Staffordshire Bull Terrier\r\n
Cavalier King Charles Spaniel\r\n
Golden Retriever\r\n
West Highland White Terrier\r\n
Boxer\r\n
Border Terrier\r\n
26

Đây là một ví dụ về cách đọc toàn bộ tệp dưới dạng danh sách bằng phương thức Python

Pug\r\n
Jack Russell Terrier\r\n
English Springer Spaniel\r\n
German Shepherd\r\n
Staffordshire Bull Terrier\r\n
Cavalier King Charles Spaniel\r\n
Golden Retriever\r\n
West Highland White Terrier\r\n
Boxer\r\n
Border Terrier\r\n
210

>>>

Pug\r\n
Jack Russell Terrier\r\n
English Springer Spaniel\r\n
German Shepherd\r\n
Staffordshire Bull Terrier\r\n
Cavalier King Charles Spaniel\r\n
Golden Retriever\r\n
West Highland White Terrier\r\n
Boxer\r\n
Border Terrier\r\n
27

Ví dụ trên cũng có thể được thực hiện bằng cách sử dụng

Pug\r\n
Jack Russell Terrier\r\n
English Springer Spaniel\r\n
German Shepherd\r\n
Staffordshire Bull Terrier\r\n
Cavalier King Charles Spaniel\r\n
Golden Retriever\r\n
West Highland White Terrier\r\n
Boxer\r\n
Border Terrier\r\n
215 để tạo danh sách ngoài đối tượng tệp

>>>

Pug\r\n
Jack Russell Terrier\r\n
English Springer Spaniel\r\n
German Shepherd\r\n
Staffordshire Bull Terrier\r\n
Cavalier King Charles Spaniel\r\n
Golden Retriever\r\n
West Highland White Terrier\r\n
Boxer\r\n
Border Terrier\r\n
28

Loại bỏ các quảng cáo

Lặp lại từng dòng trong tệp

Một điều phổ biến cần làm trong khi đọc tệp là lặp lại từng dòng. Đây là một ví dụ về cách sử dụng phương pháp Python

Pug\r\n
Jack Russell Terrier\r\n
English Springer Spaniel\r\n
German Shepherd\r\n
Staffordshire Bull Terrier\r\n
Cavalier King Charles Spaniel\r\n
Golden Retriever\r\n
West Highland White Terrier\r\n
Boxer\r\n
Border Terrier\r\n
213 để thực hiện phép lặp đó

>>>

Pug\r\n
Jack Russell Terrier\r\n
English Springer Spaniel\r\n
German Shepherd\r\n
Staffordshire Bull Terrier\r\n
Cavalier King Charles Spaniel\r\n
Golden Retriever\r\n
West Highland White Terrier\r\n
Boxer\r\n
Border Terrier\r\n
29

Một cách khác để bạn có thể lặp lại từng dòng trong tệp là sử dụng phương thức Python

Pug\r\n
Jack Russell Terrier\r\n
English Springer Spaniel\r\n
German Shepherd\r\n
Staffordshire Bull Terrier\r\n
Cavalier King Charles Spaniel\r\n
Golden Retriever\r\n
West Highland White Terrier\r\n
Boxer\r\n
Border Terrier\r\n
210 của đối tượng tệp. Hãy nhớ rằng,
Pug\r\n
Jack Russell Terrier\r\n
English Springer Spaniel\r\n
German Shepherd\r\n
Staffordshire Bull Terrier\r\n
Cavalier King Charles Spaniel\r\n
Golden Retriever\r\n
West Highland White Terrier\r\n
Boxer\r\n
Border Terrier\r\n
210 trả về một danh sách trong đó mỗi phần tử trong danh sách đại diện cho một dòng trong tệp

>>>

Pug\r\n
Jack Russell Terrier\r\n
English Springer Spaniel\r\n
German Shepherd\r\n
Staffordshire Bull Terrier\r\n
Cavalier King Charles Spaniel\r\n
Golden Retriever\r\n
West Highland White Terrier\r\n
Boxer\r\n
Border Terrier\r\n
80

Tuy nhiên, các ví dụ trên có thể được đơn giản hóa hơn nữa bằng cách lặp lại trên chính đối tượng tệp

>>>

Pug\r\n
Jack Russell Terrier\r\n
English Springer Spaniel\r\n
German Shepherd\r\n
Staffordshire Bull Terrier\r\n
Cavalier King Charles Spaniel\r\n
Golden Retriever\r\n
West Highland White Terrier\r\n
Boxer\r\n
Border Terrier\r\n
81

Cách tiếp cận cuối cùng này mang tính Pythonic hơn và có thể nhanh hơn và hiệu quả hơn về bộ nhớ. Do đó, bạn nên sử dụng cái này để thay thế

Ghi chú. Một số ví dụ trên có chứa

Pug\r\n
Jack Russell Terrier\r\n
English Springer Spaniel\r\n
German Shepherd\r\n
Staffordshire Bull Terrier\r\n
Cavalier King Charles Spaniel\r\n
Golden Retriever\r\n
West Highland White Terrier\r\n
Boxer\r\n
Border Terrier\r\n
219.
Pug\r\n
Jack Russell Terrier\r\n
English Springer Spaniel\r\n
German Shepherd\r\n
Staffordshire Bull Terrier\r\n
Cavalier King Charles Spaniel\r\n
Golden Retriever\r\n
West Highland White Terrier\r\n
Boxer\r\n
Border Terrier\r\n
220 là để ngăn Python thêm một dòng mới bổ sung vào văn bản đang được in và chỉ in những gì đang được đọc từ tệp

Bây giờ hãy đi sâu vào việc ghi tệp. Đối với việc đọc tệp, các đối tượng tệp có nhiều phương thức hữu ích để ghi vào tệp

MethodWhat It Does

Pug\r\n
Jack Russell Terrier\r\n
English Springer Spaniel\r\n
German Shepherd\r\n
Staffordshire Bull Terrier\r\n
Cavalier King Charles Spaniel\r\n
Golden Retriever\r\n
West Highland White Terrier\r\n
Boxer\r\n
Border Terrier\r\n
221This ghi chuỗi vào tệp.
Pug\r\n
Jack Russell Terrier\r\n
English Springer Spaniel\r\n
German Shepherd\r\n
Staffordshire Bull Terrier\r\n
Cavalier King Charles Spaniel\r\n
Golden Retriever\r\n
West Highland White Terrier\r\n
Boxer\r\n
Border Terrier\r\n
222Điều này ghi trình tự vào tệp. Không có kết thúc dòng nào được thêm vào mỗi mục trình tự. Tùy thuộc vào bạn để thêm (các) kết thúc dòng thích hợp

Đây là một ví dụ nhanh về việc sử dụng

Pug\r\n
Jack Russell Terrier\r\n
English Springer Spaniel\r\n
German Shepherd\r\n
Staffordshire Bull Terrier\r\n
Cavalier King Charles Spaniel\r\n
Golden Retriever\r\n
West Highland White Terrier\r\n
Boxer\r\n
Border Terrier\r\n
223 và
Pug\r\n
Jack Russell Terrier\r\n
English Springer Spaniel\r\n
German Shepherd\r\n
Staffordshire Bull Terrier\r\n
Cavalier King Charles Spaniel\r\n
Golden Retriever\r\n
West Highland White Terrier\r\n
Boxer\r\n
Border Terrier\r\n
224

Pug\r\n
Jack Russell Terrier\r\n
English Springer Spaniel\r\n
German Shepherd\r\n
Staffordshire Bull Terrier\r\n
Cavalier King Charles Spaniel\r\n
Golden Retriever\r\n
West Highland White Terrier\r\n
Boxer\r\n
Border Terrier\r\n
82

Làm việc với byte

Đôi khi, bạn có thể cần phải làm việc với các tệp sử dụng chuỗi byte. Điều này được thực hiện bằng cách thêm ký tự

Pug\r\n
Jack Russell Terrier\r\n
English Springer Spaniel\r\n
German Shepherd\r\n
Staffordshire Bull Terrier\r\n
Cavalier King Charles Spaniel\r\n
Golden Retriever\r\n
West Highland White Terrier\r\n
Boxer\r\n
Border Terrier\r\n
225 vào đối số
Pug\r
\n
Jack Russell Terrier\r
\n
English Springer Spaniel\r
\n
German Shepherd\r
\n
Staffordshire Bull Terrier\r
\n
Cavalier King Charles Spaniel\r
\n
Golden Retriever\r
\n
West Highland White Terrier\r
\n
Boxer\r
\n
Border Terrier\r
\n
35. Tất cả các phương pháp tương tự cho đối tượng tệp được áp dụng. Tuy nhiên, thay vào đó, mỗi phương thức đều mong đợi và trả về một đối tượng
Pug\r\n
Jack Russell Terrier\r\n
English Springer Spaniel\r\n
German Shepherd\r\n
Staffordshire Bull Terrier\r\n
Cavalier King Charles Spaniel\r\n
Golden Retriever\r\n
West Highland White Terrier\r\n
Boxer\r\n
Border Terrier\r\n
227

>>>

Pug\r\n
Jack Russell Terrier\r\n
English Springer Spaniel\r\n
German Shepherd\r\n
Staffordshire Bull Terrier\r\n
Cavalier King Charles Spaniel\r\n
Golden Retriever\r\n
West Highland White Terrier\r\n
Boxer\r\n
Border Terrier\r\n
83

Mở tệp văn bản bằng cờ

Pug\r\n
Jack Russell Terrier\r\n
English Springer Spaniel\r\n
German Shepherd\r\n
Staffordshire Bull Terrier\r\n
Cavalier King Charles Spaniel\r\n
Golden Retriever\r\n
West Highland White Terrier\r\n
Boxer\r\n
Border Terrier\r\n
228 không thú vị lắm. Giả sử chúng ta có bức ảnh dễ thương này về Jack Russell Terrier (
Pug\r\n
Jack Russell Terrier\r\n
English Springer Spaniel\r\n
German Shepherd\r\n
Staffordshire Bull Terrier\r\n
Cavalier King Charles Spaniel\r\n
Golden Retriever\r\n
West Highland White Terrier\r\n
Boxer\r\n
Border Terrier\r\n
229)

Python ghi vào tập tin từng dòng
Hình ảnh. CC BY 3. 0 (https. //Commons sáng tạo. org/giấy phép/bởi/3. 0)], từ Wikimedia Commons

Bạn thực sự có thể mở tệp đó bằng Python và kiểm tra nội dung. Vì định dạng tệp

Pug\r\n
Jack Russell Terrier\r\n
English Springer Spaniel\r\n
German Shepherd\r\n
Staffordshire Bull Terrier\r\n
Cavalier King Charles Spaniel\r\n
Golden Retriever\r\n
West Highland White Terrier\r\n
Boxer\r\n
Border Terrier\r\n
230 được xác định rõ, tiêu đề của tệp là 8 byte được chia nhỏ như thế này

ValueInterpretation

Pug\r\n
Jack Russell Terrier\r\n
English Springer Spaniel\r\n
German Shepherd\r\n
Staffordshire Bull Terrier\r\n
Cavalier King Charles Spaniel\r\n
Golden Retriever\r\n
West Highland White Terrier\r\n
Boxer\r\n
Border Terrier\r\n
231Một số "ma thuật" để chỉ ra rằng đây là phần đầu của một ____2232____2233
Pug\r\n
Jack Russell Terrier\r\n
English Springer Spaniel\r\n
German Shepherd\r\n
Staffordshire Bull Terrier\r\n
Cavalier King Charles Spaniel\r\n
Golden Retriever\r\n
West Highland White Terrier\r\n
Boxer\r\n
Border Terrier\r\n
232 trong ASCII
Pug\r\n
Jack Russell Terrier\r\n
English Springer Spaniel\r\n
German Shepherd\r\n
Staffordshire Bull Terrier\r\n
Cavalier King Charles Spaniel\r\n
Golden Retriever\r\n
West Highland White Terrier\r\n
Boxer\r\n
Border Terrier\r\n
235A kết thúc dòng kiểu DOS
Pug\r\n
Jack Russell Terrier\r\n
English Springer Spaniel\r\n
German Shepherd\r\n
Staffordshire Bull Terrier\r\n
Cavalier King Charles Spaniel\r\n
Golden Retriever\r\n
West Highland White Terrier\r\n
Boxer\r\n
Border Terrier\r\n
80
Pug\r\n
Jack Russell Terrier\r\n
English Springer Spaniel\r\n
German Shepherd\r\n
Staffordshire Bull Terrier\r\n
Cavalier King Charles Spaniel\r\n
Golden Retriever\r\n
West Highland White Terrier\r\n
Boxer\r\n
Border Terrier\r\n
237A ký tự EOF kiểu DOS
Pug\r\n
Jack Russell Terrier\r\n
English Springer Spaniel\r\n
German Shepherd\r\n
Staffordshire Bull Terrier\r\n
Cavalier King Charles Spaniel\r\n
Golden Retriever\r\n
West Highland White Terrier\r\n
Boxer\r\n
Border Terrier\r\n
238A kết thúc dòng kiểu Unix
Pug\r\n
Jack Russell Terrier\r\n
English Springer Spaniel\r\n
German Shepherd\r\n
Staffordshire Bull Terrier\r\n
Cavalier King Charles Spaniel\r\n
Golden Retriever\r\n
West Highland White Terrier\r\n
Boxer\r\n
Border Terrier\r\n
08

Chắc chắn rồi, khi bạn mở tệp và đọc từng byte này, bạn có thể thấy rằng đây thực sự là tệp tiêu đề

Pug\r\n
Jack Russell Terrier\r\n
English Springer Spaniel\r\n
German Shepherd\r\n
Staffordshire Bull Terrier\r\n
Cavalier King Charles Spaniel\r\n
Golden Retriever\r\n
West Highland White Terrier\r\n
Boxer\r\n
Border Terrier\r\n
230

>>>

Pug\r\n
Jack Russell Terrier\r\n
English Springer Spaniel\r\n
German Shepherd\r\n
Staffordshire Bull Terrier\r\n
Cavalier King Charles Spaniel\r\n
Golden Retriever\r\n
West Highland White Terrier\r\n
Boxer\r\n
Border Terrier\r\n
84

Loại bỏ các quảng cáo

Một ví dụ đầy đủ. Pug\r\n Jack Russell Terrier\r\n English Springer Spaniel\r\n German Shepherd\r\n Staffordshire Bull Terrier\r\n Cavalier King Charles Spaniel\r\n Golden Retriever\r\n West Highland White Terrier\r\n Boxer\r\n Border Terrier\r\n 241

Hãy mang toàn bộ nội dung này về nhà và xem một ví dụ đầy đủ về cách đọc và ghi vào một tệp. Sau đây là một công cụ tương tự như

Pug\r\n
Jack Russell Terrier\r\n
English Springer Spaniel\r\n
German Shepherd\r\n
Staffordshire Bull Terrier\r\n
Cavalier King Charles Spaniel\r\n
Golden Retriever\r\n
West Highland White Terrier\r\n
Boxer\r\n
Border Terrier\r\n
242 sẽ chuyển đổi một tệp chứa kết thúc dòng của
Pug\r\n
Jack Russell Terrier\r\n
English Springer Spaniel\r\n
German Shepherd\r\n
Staffordshire Bull Terrier\r\n
Cavalier King Charles Spaniel\r\n
Golden Retriever\r\n
West Highland White Terrier\r\n
Boxer\r\n
Border Terrier\r\n
80 thành
Pug\r\n
Jack Russell Terrier\r\n
English Springer Spaniel\r\n
German Shepherd\r\n
Staffordshire Bull Terrier\r\n
Cavalier King Charles Spaniel\r\n
Golden Retriever\r\n
West Highland White Terrier\r\n
Boxer\r\n
Border Terrier\r\n
08

Công cụ này được chia thành ba phần chính. Đầu tiên là

Pug\r\n
Jack Russell Terrier\r\n
English Springer Spaniel\r\n
German Shepherd\r\n
Staffordshire Bull Terrier\r\n
Cavalier King Charles Spaniel\r\n
Golden Retriever\r\n
West Highland White Terrier\r\n
Boxer\r\n
Border Terrier\r\n
245, chuyển đổi một chuỗi từ kết thúc dòng
Pug\r\n
Jack Russell Terrier\r\n
English Springer Spaniel\r\n
German Shepherd\r\n
Staffordshire Bull Terrier\r\n
Cavalier King Charles Spaniel\r\n
Golden Retriever\r\n
West Highland White Terrier\r\n
Boxer\r\n
Border Terrier\r\n
80 thành
Pug\r\n
Jack Russell Terrier\r\n
English Springer Spaniel\r\n
German Shepherd\r\n
Staffordshire Bull Terrier\r\n
Cavalier King Charles Spaniel\r\n
Golden Retriever\r\n
West Highland White Terrier\r\n
Boxer\r\n
Border Terrier\r\n
08. Thứ hai là
Pug\r\n
Jack Russell Terrier\r\n
English Springer Spaniel\r\n
German Shepherd\r\n
Staffordshire Bull Terrier\r\n
Cavalier King Charles Spaniel\r\n
Golden Retriever\r\n
West Highland White Terrier\r\n
Boxer\r\n
Border Terrier\r\n
248, chuyển đổi một chuỗi chứa
Pug\r\n
Jack Russell Terrier\r\n
English Springer Spaniel\r\n
German Shepherd\r\n
Staffordshire Bull Terrier\r\n
Cavalier King Charles Spaniel\r\n
Golden Retriever\r\n
West Highland White Terrier\r\n
Boxer\r\n
Border Terrier\r\n
80 ký tự thành
Pug\r\n
Jack Russell Terrier\r\n
English Springer Spaniel\r\n
German Shepherd\r\n
Staffordshire Bull Terrier\r\n
Cavalier King Charles Spaniel\r\n
Golden Retriever\r\n
West Highland White Terrier\r\n
Boxer\r\n
Border Terrier\r\n
08.
Pug\r\n
Jack Russell Terrier\r\n
English Springer Spaniel\r\n
German Shepherd\r\n
Staffordshire Bull Terrier\r\n
Cavalier King Charles Spaniel\r\n
Golden Retriever\r\n
West Highland White Terrier\r\n
Boxer\r\n
Border Terrier\r\n
248 cuộc gọi
Pug\r\n
Jack Russell Terrier\r\n
English Springer Spaniel\r\n
German Shepherd\r\n
Staffordshire Bull Terrier\r\n
Cavalier King Charles Spaniel\r\n
Golden Retriever\r\n
West Highland White Terrier\r\n
Boxer\r\n
Border Terrier\r\n
245 nội bộ. Cuối cùng, có khối
Pug\r\n
Jack Russell Terrier\r\n
English Springer Spaniel\r\n
German Shepherd\r\n
Staffordshire Bull Terrier\r\n
Cavalier King Charles Spaniel\r\n
Golden Retriever\r\n
West Highland White Terrier\r\n
Boxer\r\n
Border Terrier\r\n
253, khối này chỉ được gọi khi tệp được thực thi dưới dạng tập lệnh. Hãy nghĩ về nó như hàm
Pug\r\n
Jack Russell Terrier\r\n
English Springer Spaniel\r\n
German Shepherd\r\n
Staffordshire Bull Terrier\r\n
Cavalier King Charles Spaniel\r\n
Golden Retriever\r\n
West Highland White Terrier\r\n
Boxer\r\n
Border Terrier\r\n
254 được tìm thấy trong các ngôn ngữ lập trình khác

Pug\r\n
Jack Russell Terrier\r\n
English Springer Spaniel\r\n
German Shepherd\r\n
Staffordshire Bull Terrier\r\n
Cavalier King Charles Spaniel\r\n
Golden Retriever\r\n
West Highland White Terrier\r\n
Boxer\r\n
Border Terrier\r\n
85

Các mẹo và thủ thuật

Bây giờ bạn đã nắm vững kiến ​​thức cơ bản về đọc và ghi tệp, dưới đây là một số mẹo và thủ thuật giúp bạn phát triển kỹ năng của mình

Pug\r\n Jack Russell Terrier\r\n English Springer Spaniel\r\n German Shepherd\r\n Staffordshire Bull Terrier\r\n Cavalier King Charles Spaniel\r\n Golden Retriever\r\n West Highland White Terrier\r\n Boxer\r\n Border Terrier\r\n 255

Thuộc tính

Pug\r\n
Jack Russell Terrier\r\n
English Springer Spaniel\r\n
German Shepherd\r\n
Staffordshire Bull Terrier\r\n
Cavalier King Charles Spaniel\r\n
Golden Retriever\r\n
West Highland White Terrier\r\n
Boxer\r\n
Border Terrier\r\n
255 là thuộc tính đặc biệt của module, tương tự như
Pug\r\n
Jack Russell Terrier\r\n
English Springer Spaniel\r\n
German Shepherd\r\n
Staffordshire Bull Terrier\r\n
Cavalier King Charles Spaniel\r\n
Golden Retriever\r\n
West Highland White Terrier\r\n
Boxer\r\n
Border Terrier\r\n
257. Nó là

“tên đường dẫn của tệp mà mô-đun được tải từ đó, nếu nó được tải từ một tệp. " (Nguồn

Ghi chú. Để lặp lại,

Pug\r\n
Jack Russell Terrier\r\n
English Springer Spaniel\r\n
German Shepherd\r\n
Staffordshire Bull Terrier\r\n
Cavalier King Charles Spaniel\r\n
Golden Retriever\r\n
West Highland White Terrier\r\n
Boxer\r\n
Border Terrier\r\n
255 trả về đường dẫn liên quan đến nơi tập lệnh Python ban đầu được gọi. Nếu bạn cần đường dẫn hệ thống đầy đủ, bạn có thể sử dụng
Pug\r\n
Jack Russell Terrier\r\n
English Springer Spaniel\r\n
German Shepherd\r\n
Staffordshire Bull Terrier\r\n
Cavalier King Charles Spaniel\r\n
Golden Retriever\r\n
West Highland White Terrier\r\n
Boxer\r\n
Border Terrier\r\n
259 để lấy thư mục làm việc hiện tại của mã thực thi của bạn

Đây là một ví dụ thực tế. Ở một trong những công việc trước đây của mình, tôi đã thực hiện nhiều thử nghiệm cho một thiết bị phần cứng. Mỗi bài kiểm tra được viết bằng tập lệnh Python với tên tệp tập lệnh kiểm tra được sử dụng làm tiêu đề. Các tập lệnh này sau đó sẽ được thực thi và có thể in trạng thái của chúng bằng thuộc tính đặc biệt

Pug\r\n
Jack Russell Terrier\r\n
English Springer Spaniel\r\n
German Shepherd\r\n
Staffordshire Bull Terrier\r\n
Cavalier King Charles Spaniel\r\n
Golden Retriever\r\n
West Highland White Terrier\r\n
Boxer\r\n
Border Terrier\r\n
255. Đây là một cấu trúc thư mục ví dụ

Pug\r\n
Jack Russell Terrier\r\n
English Springer Spaniel\r\n
German Shepherd\r\n
Staffordshire Bull Terrier\r\n
Cavalier King Charles Spaniel\r\n
Golden Retriever\r\n
West Highland White Terrier\r\n
Boxer\r\n
Border Terrier\r\n
86

Đang chạy

Pug\r\n
Jack Russell Terrier\r\n
English Springer Spaniel\r\n
German Shepherd\r\n
Staffordshire Bull Terrier\r\n
Cavalier King Charles Spaniel\r\n
Golden Retriever\r\n
West Highland White Terrier\r\n
Boxer\r\n
Border Terrier\r\n
261 tạo ra như sau

Pug\r\n
Jack Russell Terrier\r\n
English Springer Spaniel\r\n
German Shepherd\r\n
Staffordshire Bull Terrier\r\n
Cavalier King Charles Spaniel\r\n
Golden Retriever\r\n
West Highland White Terrier\r\n
Boxer\r\n
Border Terrier\r\n
87

Tôi đã có thể chạy và nhận trạng thái của tất cả các bài kiểm tra của mình một cách linh hoạt thông qua việc sử dụng thuộc tính đặc biệt

Pug\r\n
Jack Russell Terrier\r\n
English Springer Spaniel\r\n
German Shepherd\r\n
Staffordshire Bull Terrier\r\n
Cavalier King Charles Spaniel\r\n
Golden Retriever\r\n
West Highland White Terrier\r\n
Boxer\r\n
Border Terrier\r\n
255

Thêm vào một tập tin

Đôi khi, bạn có thể muốn nối thêm vào tệp hoặc bắt đầu viết ở cuối tệp đã điền. Điều này được thực hiện dễ dàng bằng cách sử dụng ký tự

Pug\r\n
Jack Russell Terrier\r\n
English Springer Spaniel\r\n
German Shepherd\r\n
Staffordshire Bull Terrier\r\n
Cavalier King Charles Spaniel\r\n
Golden Retriever\r\n
West Highland White Terrier\r\n
Boxer\r\n
Border Terrier\r\n
263 cho đối số
Pug\r
\n
Jack Russell Terrier\r
\n
English Springer Spaniel\r
\n
German Shepherd\r
\n
Staffordshire Bull Terrier\r
\n
Cavalier King Charles Spaniel\r
\n
Golden Retriever\r
\n
West Highland White Terrier\r
\n
Boxer\r
\n
Border Terrier\r
\n
35

Pug\r\n
Jack Russell Terrier\r\n
English Springer Spaniel\r\n
German Shepherd\r\n
Staffordshire Bull Terrier\r\n
Cavalier King Charles Spaniel\r\n
Golden Retriever\r\n
West Highland White Terrier\r\n
Boxer\r\n
Border Terrier\r\n
88

Khi bạn kiểm tra lại

Pug\r\n
Jack Russell Terrier\r\n
English Springer Spaniel\r\n
German Shepherd\r\n
Staffordshire Bull Terrier\r\n
Cavalier King Charles Spaniel\r\n
Golden Retriever\r\n
West Highland White Terrier\r\n
Boxer\r\n
Border Terrier\r\n
76, bạn sẽ thấy rằng phần đầu của tệp không thay đổi và
Pug\r\n
Jack Russell Terrier\r\n
English Springer Spaniel\r\n
German Shepherd\r\n
Staffordshire Bull Terrier\r\n
Cavalier King Charles Spaniel\r\n
Golden Retriever\r\n
West Highland White Terrier\r\n
Boxer\r\n
Border Terrier\r\n
266 hiện được thêm vào cuối tệp

>>>

Pug\r\n
Jack Russell Terrier\r\n
English Springer Spaniel\r\n
German Shepherd\r\n
Staffordshire Bull Terrier\r\n
Cavalier King Charles Spaniel\r\n
Golden Retriever\r\n
West Highland White Terrier\r\n
Boxer\r\n
Border Terrier\r\n
89

Loại bỏ các quảng cáo

Làm việc với hai tệp cùng một lúc

Đôi khi bạn có thể muốn đọc một tệp và ghi vào một tệp khác cùng một lúc. Nếu bạn sử dụng ví dụ được hiển thị khi bạn đang học cách ghi vào một tệp, nó thực sự có thể được kết hợp thành như sau

Pug\r\n
Jack Russell Terrier\r\n
English Springer Spaniel\r\n
German Shepherd\r\n
Staffordshire Bull Terrier\r\n
Cavalier King Charles Spaniel\r\n
Golden Retriever\r\n
West Highland White Terrier\r\n
Boxer\r\n
Border Terrier\r\n
0

Tạo trình quản lý bối cảnh của riêng bạn

Có thể đến lúc bạn cần kiểm soát tốt hơn đối tượng tệp bằng cách đặt nó bên trong một lớp tùy chỉnh. Khi bạn làm điều này, việc sử dụng câu lệnh

Pug\r
\n
Jack Russell Terrier\r
\n
English Springer Spaniel\r
\n
German Shepherd\r
\n
Staffordshire Bull Terrier\r
\n
Cavalier King Charles Spaniel\r
\n
Golden Retriever\r
\n
West Highland White Terrier\r
\n
Boxer\r
\n
Border Terrier\r
\n
31 không còn có thể được sử dụng trừ khi bạn thêm một vài phương thức kỳ diệu.
Pug\r\n
Jack Russell Terrier\r\n
English Springer Spaniel\r\n
German Shepherd\r\n
Staffordshire Bull Terrier\r\n
Cavalier King Charles Spaniel\r\n
Golden Retriever\r\n
West Highland White Terrier\r\n
Boxer\r\n
Border Terrier\r\n
268 và
Pug\r\n
Jack Russell Terrier\r\n
English Springer Spaniel\r\n
German Shepherd\r\n
Staffordshire Bull Terrier\r\n
Cavalier King Charles Spaniel\r\n
Golden Retriever\r\n
West Highland White Terrier\r\n
Boxer\r\n
Border Terrier\r\n
269. Bằng cách thêm những thứ này, bạn sẽ tạo ra cái được gọi là trình quản lý ngữ cảnh

Pug\r\n
Jack Russell Terrier\r\n
English Springer Spaniel\r\n
German Shepherd\r\n
Staffordshire Bull Terrier\r\n
Cavalier King Charles Spaniel\r\n
Golden Retriever\r\n
West Highland White Terrier\r\n
Boxer\r\n
Border Terrier\r\n
270 được gọi khi gọi câu lệnh
Pug\r
\n
Jack Russell Terrier\r
\n
English Springer Spaniel\r
\n
German Shepherd\r
\n
Staffordshire Bull Terrier\r
\n
Cavalier King Charles Spaniel\r
\n
Golden Retriever\r
\n
West Highland White Terrier\r
\n
Boxer\r
\n
Border Terrier\r
\n
31.
Pug\r\n
Jack Russell Terrier\r\n
English Springer Spaniel\r\n
German Shepherd\r\n
Staffordshire Bull Terrier\r\n
Cavalier King Charles Spaniel\r\n
Golden Retriever\r\n
West Highland White Terrier\r\n
Boxer\r\n
Border Terrier\r\n
272 được gọi khi thoát khỏi khối câu lệnh
Pug\r
\n
Jack Russell Terrier\r
\n
English Springer Spaniel\r
\n
German Shepherd\r
\n
Staffordshire Bull Terrier\r
\n
Cavalier King Charles Spaniel\r
\n
Golden Retriever\r
\n
West Highland White Terrier\r
\n
Boxer\r
\n
Border Terrier\r
\n
31

Đây là một mẫu mà bạn có thể sử dụng để tạo lớp tùy chỉnh của mình

Pug\r\n
Jack Russell Terrier\r\n
English Springer Spaniel\r\n
German Shepherd\r\n
Staffordshire Bull Terrier\r\n
Cavalier King Charles Spaniel\r\n
Golden Retriever\r\n
West Highland White Terrier\r\n
Boxer\r\n
Border Terrier\r\n
1

Bây giờ bạn đã có lớp tùy chỉnh hiện là trình quản lý ngữ cảnh, bạn có thể sử dụng nó tương tự như lớp tích hợp sẵn

Pug\r\n
Jack Russell Terrier\r\n
English Springer Spaniel\r\n
German Shepherd\r\n
Staffordshire Bull Terrier\r\n
Cavalier King Charles Spaniel\r\n
Golden Retriever\r\n
West Highland White Terrier\r\n
Boxer\r\n
Border Terrier\r\n
86

Pug\r\n
Jack Russell Terrier\r\n
English Springer Spaniel\r\n
German Shepherd\r\n
Staffordshire Bull Terrier\r\n
Cavalier King Charles Spaniel\r\n
Golden Retriever\r\n
West Highland White Terrier\r\n
Boxer\r\n
Border Terrier\r\n
2

Đây là một ví dụ tốt. Bạn có nhớ hình ảnh Jack Russell dễ thương mà chúng ta có không? . Đây là một ví dụ về cách làm điều này. Ví dụ này cũng sử dụng trình vòng lặp tùy chỉnh. Nếu bạn không quen thuộc với chúng, hãy xem Python Iterators

Pug\r\n
Jack Russell Terrier\r\n
English Springer Spaniel\r\n
German Shepherd\r\n
Staffordshire Bull Terrier\r\n
Cavalier King Charles Spaniel\r\n
Golden Retriever\r\n
West Highland White Terrier\r\n
Boxer\r\n
Border Terrier\r\n
3

Giờ đây, bạn có thể mở các tệp

Pug\r\n
Jack Russell Terrier\r\n
English Springer Spaniel\r\n
German Shepherd\r\n
Staffordshire Bull Terrier\r\n
Cavalier King Charles Spaniel\r\n
Golden Retriever\r\n
West Highland White Terrier\r\n
Boxer\r\n
Border Terrier\r\n
230 và phân tích cú pháp đúng cách bằng trình quản lý ngữ cảnh tùy chỉnh của mình

>>>

Pug\r\n
Jack Russell Terrier\r\n
English Springer Spaniel\r\n
German Shepherd\r\n
Staffordshire Bull Terrier\r\n
Cavalier King Charles Spaniel\r\n
Golden Retriever\r\n
West Highland White Terrier\r\n
Boxer\r\n
Border Terrier\r\n
4

Đừng phát minh lại con rắn

Một số tình huống phổ biến mà bạn có thể gặp phải khi làm việc với tệp. Hầu hết các trường hợp này có thể được xử lý bằng các mô-đun khác. Hai loại tệp phổ biến mà bạn có thể cần phải làm việc là

Pug\r\n
Jack Russell Terrier\r\n
English Springer Spaniel\r\n
German Shepherd\r\n
Staffordshire Bull Terrier\r\n
Cavalier King Charles Spaniel\r\n
Golden Retriever\r\n
West Highland White Terrier\r\n
Boxer\r\n
Border Terrier\r\n
9 và
Pug\r\n
Jack Russell Terrier\r\n
English Springer Spaniel\r\n
German Shepherd\r\n
Staffordshire Bull Terrier\r\n
Cavalier King Charles Spaniel\r\n
Golden Retriever\r\n
West Highland White Terrier\r\n
Boxer\r\n
Border Terrier\r\n
278. Real Python đã tập hợp một số bài viết tuyệt vời về cách xử lý những

  • Đọc và ghi tệp CSV bằng Python
  • Làm việc với dữ liệu JSON trong Python

Ngoài ra, có các thư viện tích hợp sẵn mà bạn có thể sử dụng để giúp bạn

  • Pug\r\n
    Jack Russell Terrier\r\n
    English Springer Spaniel\r\n
    German Shepherd\r\n
    Staffordshire Bull Terrier\r\n
    Cavalier King Charles Spaniel\r\n
    Golden Retriever\r\n
    West Highland White Terrier\r\n
    Boxer\r\n
    Border Terrier\r\n
    
    279. đọc và ghi tệp WAV (âm thanh)
  • Pug\r\n
    Jack Russell Terrier\r\n
    English Springer Spaniel\r\n
    German Shepherd\r\n
    Staffordshire Bull Terrier\r\n
    Cavalier King Charles Spaniel\r\n
    Golden Retriever\r\n
    West Highland White Terrier\r\n
    Boxer\r\n
    Border Terrier\r\n
    
    280. đọc và ghi các tệp AIFF và AIFC (âm thanh)
  • Pug\r\n
    Jack Russell Terrier\r\n
    English Springer Spaniel\r\n
    German Shepherd\r\n
    Staffordshire Bull Terrier\r\n
    Cavalier King Charles Spaniel\r\n
    Golden Retriever\r\n
    West Highland White Terrier\r\n
    Boxer\r\n
    Border Terrier\r\n
    
    281. đọc và ghi tập tin Sun AU
  • Pug\r\n
    Jack Russell Terrier\r\n
    English Springer Spaniel\r\n
    German Shepherd\r\n
    Staffordshire Bull Terrier\r\n
    Cavalier King Charles Spaniel\r\n
    Golden Retriever\r\n
    West Highland White Terrier\r\n
    Boxer\r\n
    Border Terrier\r\n
    
    282. đọc và ghi tập tin lưu trữ tar
  • Pug\r\n
    Jack Russell Terrier\r\n
    English Springer Spaniel\r\n
    German Shepherd\r\n
    Staffordshire Bull Terrier\r\n
    Cavalier King Charles Spaniel\r\n
    Golden Retriever\r\n
    West Highland White Terrier\r\n
    Boxer\r\n
    Border Terrier\r\n
    
    283. làm việc với kho lưu trữ ZIP
  • Pug\r\n
    Jack Russell Terrier\r\n
    English Springer Spaniel\r\n
    German Shepherd\r\n
    Staffordshire Bull Terrier\r\n
    Cavalier King Charles Spaniel\r\n
    Golden Retriever\r\n
    West Highland White Terrier\r\n
    Boxer\r\n
    Border Terrier\r\n
    
    284. dễ dàng tạo và phân tích các tệp cấu hình
  • Pug\r\n
    Jack Russell Terrier\r\n
    English Springer Spaniel\r\n
    German Shepherd\r\n
    Staffordshire Bull Terrier\r\n
    Cavalier King Charles Spaniel\r\n
    Golden Retriever\r\n
    West Highland White Terrier\r\n
    Boxer\r\n
    Border Terrier\r\n
    
    285. tạo hoặc đọc các tệp dựa trên XML
  • Pug\r\n
    Jack Russell Terrier\r\n
    English Springer Spaniel\r\n
    German Shepherd\r\n
    Staffordshire Bull Terrier\r\n
    Cavalier King Charles Spaniel\r\n
    Golden Retriever\r\n
    West Highland White Terrier\r\n
    Boxer\r\n
    Border Terrier\r\n
    
    286. đọc và ghi các tệp Microsoft Installer
  • Pug\r\n
    Jack Russell Terrier\r\n
    English Springer Spaniel\r\n
    German Shepherd\r\n
    Staffordshire Bull Terrier\r\n
    Cavalier King Charles Spaniel\r\n
    Golden Retriever\r\n
    West Highland White Terrier\r\n
    Boxer\r\n
    Border Terrier\r\n
    
    287. tạo và phân tích các tệp Mac OS X
    Pug\r\n
    Jack Russell Terrier\r\n
    English Springer Spaniel\r\n
    German Shepherd\r\n
    Staffordshire Bull Terrier\r\n
    Cavalier King Charles Spaniel\r\n
    Golden Retriever\r\n
    West Highland White Terrier\r\n
    Boxer\r\n
    Border Terrier\r\n
    
    288

Có rất nhiều hơn nữa ngoài kia. Ngoài ra, thậm chí còn có nhiều công cụ của bên thứ ba hơn trên PyPI. Một số cái phổ biến như sau

  • Pug\r\n
    Jack Russell Terrier\r\n
    English Springer Spaniel\r\n
    German Shepherd\r\n
    Staffordshire Bull Terrier\r\n
    Cavalier King Charles Spaniel\r\n
    Golden Retriever\r\n
    West Highland White Terrier\r\n
    Boxer\r\n
    Border Terrier\r\n
    
    289. bộ công cụ PDF
  • Pug\r\n
    Jack Russell Terrier\r\n
    English Springer Spaniel\r\n
    German Shepherd\r\n
    Staffordshire Bull Terrier\r\n
    Cavalier King Charles Spaniel\r\n
    Golden Retriever\r\n
    West Highland White Terrier\r\n
    Boxer\r\n
    Border Terrier\r\n
    
    290. đọc và ghi tệp Excel
  • Pug\r\n
    Jack Russell Terrier\r\n
    English Springer Spaniel\r\n
    German Shepherd\r\n
    Staffordshire Bull Terrier\r\n
    Cavalier King Charles Spaniel\r\n
    Golden Retriever\r\n
    West Highland White Terrier\r\n
    Boxer\r\n
    Border Terrier\r\n
    
    291. đọc và thao tác hình ảnh

Loại bỏ các quảng cáo

Bạn là một thuật sĩ tập tin Harry

Bạn làm được rồi. Bây giờ bạn đã biết cách làm việc với các tệp bằng Python, bao gồm một số kỹ thuật nâng cao. Làm việc với các tệp trong Python giờ đây sẽ dễ dàng hơn bao giờ hết và là một cảm giác bổ ích khi bạn bắt đầu làm việc đó

Trong hướng dẫn này, bạn đã học

  • tập tin là gì
  • Cách mở và đóng tệp đúng cách
  • Cách đọc và ghi tệp
  • Một số kỹ thuật nâng cao khi làm việc với tệp
  • Một số thư viện để làm việc với các loại tệp phổ biến

Nếu bạn có bất kỳ câu hỏi nào, hãy đánh chúng tôi trong phần bình luận

Lấy bài kiểm tra. Kiểm tra kiến ​​thức của bạn với bài kiểm tra tương tác “Đọc và ghi tệp bằng Python” của chúng tôi. Sau khi hoàn thành, bạn sẽ nhận được điểm số để có thể theo dõi quá trình học tập của mình theo thời gian

Lấy bài kiểm tra "

Đánh dấu là đã hoàn thành

Xem ngay Hướng dẫn này có một khóa học video liên quan do nhóm Real Python tạo. Xem nó cùng với hướng dẫn bằng văn bản để hiểu sâu hơn. Đọc và ghi tệp bằng Python

🐍 Thủ thuật Python 💌

Nhận một Thủ thuật Python ngắn và hấp dẫn được gửi đến hộp thư đến của bạn vài ngày một lần. Không có thư rác bao giờ. Hủy đăng ký bất cứ lúc nào. Được quản lý bởi nhóm Real Python

Python ghi vào tập tin từng dòng

Gửi cho tôi thủ thuật Python »

Giới thiệu về James Mertz

Python ghi vào tập tin từng dòng
Python ghi vào tập tin từng dòng

James là một nhà phát triển Python đam mê tại Phòng thí nghiệm Động cơ phản lực của NASA, người cũng viết bài cho Real Python

» Thông tin thêm về James


Mỗi hướng dẫn tại Real Python được tạo bởi một nhóm các nhà phát triển để nó đáp ứng các tiêu chuẩn chất lượng cao của chúng tôi. Các thành viên trong nhóm đã làm việc trong hướng dẫn này là

Python ghi vào tập tin từng dòng

Aldren

Python ghi vào tập tin từng dòng

David

Python ghi vào tập tin từng dòng

Joanna

Bậc thầy Kỹ năng Python trong thế giới thực Với quyền truy cập không giới hạn vào Python thực

Python ghi vào tập tin từng dòng

Tham gia với chúng tôi và có quyền truy cập vào hàng nghìn hướng dẫn, khóa học video thực hành và cộng đồng các Pythonistas chuyên gia

Nâng cao kỹ năng Python của bạn »

Bậc thầy Kỹ năng Python trong thế giới thực
Với quyền truy cập không giới hạn vào Python thực

Tham gia với chúng tôi và có quyền truy cập vào hàng ngàn hướng dẫn, khóa học video thực hành và cộng đồng Pythonistas chuyên gia

Nâng cao kỹ năng Python của bạn »

Bạn nghĩ sao?

Đánh giá bài viết này

Tweet Chia sẻ Chia sẻ Email

Bài học số 1 hoặc điều yêu thích mà bạn đã học được là gì?

Mẹo bình luận. Những nhận xét hữu ích nhất là những nhận xét được viết với mục đích học hỏi hoặc giúp đỡ các sinh viên khác. Nhận các mẹo để đặt câu hỏi hay và nhận câu trả lời cho các câu hỏi phổ biến trong cổng thông tin hỗ trợ của chúng tôi