Hướng dẫn check file encoding python - kiểm tra mã hóa tệp python

Nếu bạn không hài lòng với các công cụ tự động, bạn có thể thử tất cả các codec và xem codec nào đúng theo cách thủ công.

Nội dung chính ShowShow

  • Tệp là gì?
  • Đường dẫn tập tin
  • Kết thúc dòng
  • Mã hóa ký tự
  • Mở và đóng một tập tin trong Python
  • Loại tệp văn bản
  • Các loại tệp nhị phân được đệm
  • Đây là đối tượng tệp mặc định được trả về bởi reader = open['dog_breeds.txt'] try: # Further file processing goes here finally: reader.close[] 7.
  • Nói chung, được sử dụng như một khối xây dựng cấp thấp cho các luồng nhị phân và văn bản. [Nguồn]
  • 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 7 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 pháp này. Dưới đây, một ví dụ về cách mở và đọc toàn bộ tệp bằng / │ ├── path/ | │ │ ├── to/ │ │ └── cats.gif │ │ │ └── dog_breeds.txt | └── animals.csv 13:
  • Điều này đọc từ tệp dựa trên số byte / │ ├── path/ | │ │ ├── to/ │ │ └── cats.gif │ │ │ └── dog_breeds.txt | └── animals.csv 04. Nếu không có đối số nào được thông qua hoặc / │ ├── path/ | │ │ ├── to/ │ │ └── cats.gif │ │ │ └── dog_breeds.txt | └── animals.csv 05 hoặc / │ ├── path/ | │ │ ├── to/ │ │ └── cats.gif │ │ │ └── dog_breeds.txt | └── animals.csv 06 được thông qua, thì toàn bộ tệp được đọc.
  • Điều này viết chuỗi vào tệp. Không có kết thúc dòng được nối vào từng mục trình tự. Nó tùy thuộc vào bạn để thêm [các] kết thúc dòng thích hợp.
  • Các mẹo và thủ thuật
  • / │ ├── path/ | │ │ ├── to/ │ │ └── cats.gif │ │ │ └── dog_breeds.txt | └── animals.csv 53
  • Nối vào một tập tin
  • Làm việc với hai tệp cùng một lúc
  • Tạo trình quản lý bối cảnh của riêng bạn
  • Làm việc với hai tệp cùng một lúc
  • Tạo trình quản lý bối cảnh của riêng bạn

/ │ ├── path/ | │ │ ├── to/ │ │ └── cats.gif │ │ │ └── dog_breeds.txt | └── animals.csv 79: Làm việc với kho lưu trữ zip

  • Tệp là gì?
  • Kết thúc dòng
  • Mã hóa ký tự
  • Mở và đóng một tập tin trong Python
  • Loại tệp văn bản
  • Các loại tệp nhị phân được đệm
  • Đây là đối tượng tệp mặc định được trả về bởi reader = open['dog_breeds.txt'] try: # Further file processing goes here finally: reader.close[] 7.
  • Nói chung, được sử dụng như một khối xây dựng cấp thấp cho các luồng nhị phân và văn bản. [Nguồn]
  • 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 7 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 pháp này. Dưới đây, một ví dụ về cách mở và đọc toàn bộ tệp bằng / │ ├── path/ | │ │ ├── to/ │ │ └── cats.gif │ │ │ └── dog_breeds.txt | └── animals.csv 13:
  • Điều này đọc từ tệp dựa trên số byte / │ ├── path/ | │ │ ├── to/ │ │ └── cats.gif │ │ │ └── dog_breeds.txt | └── animals.csv 04. Nếu không có đối số nào được thông qua hoặc / │ ├── path/ | │ │ ├── to/ │ │ └── cats.gif │ │ │ └── dog_breeds.txt | └── animals.csv 05 hoặc / │ ├── path/ | │ │ ├── to/ │ │ └── cats.gif │ │ │ └── dog_breeds.txt | └── animals.csv 06 được thông qua, thì toàn bộ tệp được đọc.
  • Điều này viết chuỗi vào tệp. Không có kết thúc dòng được nối vào từng mục trình tự. Nó tùy thuộc vào bạn để thêm [các] kết thúc dòng thích hợp.
  • Các mẹo và thủ thuật
  • Nối vào một tập tin
  • Làm việc với hai tệp cùng một lúc
  • Tạo trình quản lý bối cảnh của riêng bạn
  • / │ ├── path/ | │ │ ├── to/ │ │ └── cats.gif │ │ │ └── dog_breeds.txt | └── animals.csv 79: Làm việc với kho lưu trữ zip
  • Nội phân chính
all_codecs = ['ascii', 'big5', 'big5hkscs', 'cp037', 'cp273', 'cp424', 'cp437', 
'cp500', 'cp720', 'cp737', 'cp775', 'cp850', 'cp852', 'cp855', 'cp856', 'cp857', 
'cp858', 'cp860', 'cp861', 'cp862', 'cp863', 'cp864', 'cp865', 'cp866', 'cp869', 
'cp874', 'cp875', 'cp932', 'cp949', 'cp950', 'cp1006', 'cp1026', 'cp1125', 
'cp1140', 'cp1250', 'cp1251', 'cp1252', 'cp1253', 'cp1254', 'cp1255', 'cp1256', 
'cp1257', 'cp1258', 'euc_jp', 'euc_jis_2004', 'euc_jisx0213', 'euc_kr', 
'gb2312', 'gbk', 'gb18030', 'hz', 'iso2022_jp', 'iso2022_jp_1', 'iso2022_jp_2', 
'iso2022_jp_2004', 'iso2022_jp_3', 'iso2022_jp_ext', 'iso2022_kr', 'latin_1', 
'iso8859_2', 'iso8859_3', 'iso8859_4', 'iso8859_5', 'iso8859_6', 'iso8859_7', 
'iso8859_8', 'iso8859_9', 'iso8859_10', 'iso8859_11', 'iso8859_13', 
'iso8859_14', 'iso8859_15', 'iso8859_16', 'johab', 'koi8_r', 'koi8_t', 'koi8_u', 
'kz1048', 'mac_cyrillic', 'mac_greek', 'mac_iceland', 'mac_latin2', 'mac_roman', 
'mac_turkish', 'ptcp154', 'shift_jis', 'shift_jis_2004', 'shift_jisx0213', 
'utf_32', 'utf_32_be', 'utf_32_le', 'utf_16', 'utf_16_be', 'utf_16_le', 'utf_7', 
'utf_8', 'utf_8_sig']

def find_codec[text]:
    for i in all_codecs:
        for j in all_codecs:
            try:
                print[i, "to", j, text.encode[i].decode[j]]
            except:
                pass

find_codec["The example string which includes ö, ü, or ÄŸ, ö"]

Các loại tệp thô

Đọc và viết các tệp đã mở This tutorial has a related video course created by the Real Python team. Watch it together with the written tutorial to deepen your understanding: Reading and Writing Files in Python

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

Làm việc với byte

  • Một ví dụ đầy đủ: dos2unix.py
  • Don lồng phát minh lại con rắn
  • Bạn là một pháp sư tập tin Harry!

Kịch bản này tạo ra ít nhất 9409 dòng đầu ra. Vì vậy, nếu đầu ra không thể phù hợp với màn hình đầu cuối, hãy cố gắng ghi đầu ra vào tệp văn bản.

Tệp là gì?

Xem bây giờ hướng dẫn này có một khóa học video liên quan được tạo bởi nhóm Python thực sự. Xem cùng với hướng dẫn bằng văn bản để hiểu sâu hơn về sự hiểu biết của bạn: Đọc và ghi các tập tin bằng Python This tutorial has a related video course created by the Real Python team. Watch it together with the written tutorial to deepen your understanding: Reading and Writing Files in Python

Một trong những nhiệm vụ phổ biến nhất mà bạn có thể làm với Python là đọc và viết tệp. Cho dù nó viết vào một tệp văn bản đơn giản, đọc nhật ký máy chủ phức tạp hoặc 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 viết một 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 tin và tại sao điều đó quan trọng trong Python

  1. Những điều cơ bản của việc đọc và ghi các tập tin trong Python metadata about the contents of the file [file name, size, type, and so on]
  2. Một số kịch bản cơ bản về đọc và ghi tệp contents of the file as written by the creator or editor
  3. Hướng dẫn này chủ yếu dành cho người mới bắt đầu đến trung gian Pythonistas, nhưng có một số lời khuyên ở đây mà các lập trình viên tiên tiến hơn cũng có thể đánh giá cao. special character that indicates the end of the file

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

/
│
├── path/  ← Referencing this parent folder
|   │
|   ├── to/  ← Current working directory [cwd]
|   │   └── cats.gif
|   │
|   └── dog_breeds.txt  ← Accessing this file
|
└── animals.csv
8 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 phải hàng ngà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
/
│
├── path/  ← Referencing this parent folder
|   │
|   ├── to/  ← Current working directory [cwd]
|   │   └── cats.gif
|   │
|   └── dog_breeds.txt  ← Accessing this file
|
└── animals.csv
9 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
0.

Đường dẫn tập tin

Khi bạn truy cập một tệp trên một hệ điều hành, một đường dẫn tệp được yêu cầu. Đường dẫn tệp là một chuỗi đại diện cho vị trí của một tệp. Nó 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 phía 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
    
    1 [UNIX] hoặc Backslash
    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 [Windows] the file folder location on the file system where subsequent folders are separated by a forward slash
    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 [Unix] or backslash
    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 [Windows]
    the file folder location on the file system where subsequent folders are separated by a forward slash
    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 [Unix] or backslash
    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 [Windows]
  2. Tên tệp: Tên thực của tệp the actual name of the file the actual name of the file
  3. Tiện ích mở rộng: Phần cuối của đường dẫn tệp được ưu tiên với một khoảng thời gian [
    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 sử dụng để chỉ ra loại tệp the end of the file path pre-pended with a period [
    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] used to indicate the file type
    the end of the file path pre-pended with a period [
    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] used to indicate the file type

Ở đây, một ví dụ nhanh chóng. Hãy nói rằng bạn có một tệp nằm trong cấu trúc tệp như thế này:

/
│
├── path/  ← Referencing this parent folder
|   │
|   ├── to/  ← Current working directory [cwd]
|   │   └── cats.gif
|   │
|   └── dog_breeds.txt  ← Accessing this file
|
└── animals.csv
2

Hãy nói rằng bạn muốn truy cập 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
4 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
5. Để 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
5 và sau đó là 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
7, 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
4. Đườ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
9. Tên tệp là
/
│
├── path/  ← Referencing this parent folder
|   │
|   ├── to/  ← Current working directory [cwd]
|   │   └── cats.gif
|   │
|   └── dog_breeds.txt  ← Accessing this file
|
└── animals.csv
90. Phần mở rộng tệp là
/
│
├── path/  ← Referencing this parent folder
|   │
|   ├── to/  ← Current working directory [cwd]
|   │   └── cats.gif
|   │
|   └── dog_breeds.txt  ← Accessing this file
|
└── animals.csv
8. Vì vậy, đường dẫn đầy đủ là
/
│
├── path/  ← Referencing this parent folder
|   │
|   ├── to/  ← Current working directory [cwd]
|   │   └── cats.gif
|   │
|   └── dog_breeds.txt  ← Accessing this file
|
└── animals.csv
92.

Bây giờ, hãy để nói 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
7 của cấu trúc thư mục ví dụ của chúng tôi. Thay vì đề cập đế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
4 theo đường dẫn đầy đủ của
/
│
├── path/  ← Referencing this parent folder
|   │
|   ├── to/  ← Current working directory [cwd]
|   │   └── cats.gif
|   │
|   └── dog_breeds.txt  ← Accessing this file
|
└── animals.csv
92, tệp có thể được tham chiếu đơn giản bằng tên tệp và tiện ích 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
4.
/
│
├── path/  ← Referencing this parent folder
|   │
|   ├── to/  ← Current working directory [cwd]
|   │   └── cats.gif
|   │
|   └── dog_breeds.txt  ← Accessing this file
|
└── animals.csv
6

Nhưng còn

/
│
├── path/  ← Referencing this parent folder
|   │
|   ├── to/  ← Current working directory [cwd]
|   │   └── cats.gif
|   │
|   └── dog_breeds.txt  ← Accessing this file
|
└── animals.csv
97 thì sao? Làm thế nào bạn sẽ truy cập vào đó mà không cần sử dụng đường dẫn đầy đủ? Bạn có thể sử dụng DOT đôi ký tự đặc biệt [
/
│
├── path/  ← Referencing this parent folder
|   │
|   ├── to/  ← Current working directory [cwd]
|   │   └── cats.gif
|   │
|   └── dog_breeds.txt  ← Accessing this file
|
└── animals.csv
98] để di chuyển một thư mục lên. Điều này có nghĩa là
/
│
├── path/  ← Referencing this parent folder
|   │
|   ├── to/  ← Current working directory [cwd]
|   │   └── cats.gif
|   │
|   └── dog_breeds.txt  ← Accessing this file
|
└── animals.csv
99 sẽ tham chiếu tệp
/
│
├── path/  ← Referencing this parent folder
|   │
|   ├── to/  ← Current working directory [cwd]
|   │   └── cats.gif
|   │
|   └── dog_breeds.txt  ← Accessing this file
|
└── animals.csv
97 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
7:
/
│
├── path/  ← Referencing this parent folder
|   │
|   ├── to/  ← Current working directory [cwd]
|   │   └── cats.gif
|   │
|   └── dog_breeds.txt  ← Accessing this file
|
└── animals.csv

DOT đôi [

/
│
├── path/  ← Referencing this parent folder
|   │
|   ├── to/  ← Current working directory [cwd]
|   │   └── cats.gif
|   │
|   └── dog_breeds.txt  ← Accessing this file
|
└── animals.csv
98] có thể được xích lại với nhau để vượt qua nhiều thư mục trên thư mục hiện tại. Ví dụ: để truy cập
/
│
├── path/  ← Referencing this parent folder
|   │
|   ├── to/  ← Current working directory [cwd]
|   │   └── cats.gif
|   │
|   └── dog_breeds.txt  ← Accessing this file
|
└── animals.csv
43 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
7, bạn sẽ sử dụng
/
│
├── path/  ← Referencing this parent folder
|   │
|   ├── to/  ← Current working directory [cwd]
|   │   └── cats.gif
|   │
|   └── dog_breeds.txt  ← Accessing this file
|
└── animals.csv
45.

Kết thúc dòng

Một vấn đề thường gặp phải 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ừ trở lại trong kỷ nguyên mã Morse, khi một ký hiệu ủng hộ cụ thể được sử dụng để truyền đạt sự kết thúc của việc truyền hoặc kết thúc của một dòng.

Sau đó, điều này đã được tiêu chuẩn hóa cho các nhà giao dịch từ xa bởi 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]. ASA tiêu chuẩn nói rằng các kết thúc dòng nên sử dụng trình tự trả lại vận chuyển [

/
│
├── path/  ← Referencing this parent folder
|   │
|   ├── to/  ← Current working directory [cwd]
|   │   └── cats.gif
|   │
|   └── dog_breeds.txt  ← Accessing this file
|
└── animals.csv
46 hoặc
/
│
├── path/  ← Referencing this parent folder
|   │
|   ├── to/  ← Current working directory [cwd]
|   │   └── cats.gif
|   │
|   └── dog_breeds.txt  ← Accessing this file
|
└── animals.csv
47] và các ký tự nguồn cấp dữ liệu dòng [
/
│
├── path/  ← Referencing this parent folder
|   │
|   ├── to/  ← Current working directory [cwd]
|   │   └── cats.gif
|   │
|   └── dog_breeds.txt  ← Accessing this file
|
└── animals.csv
48 hoặc
/
│
├── path/  ← Referencing this parent folder
|   │
|   ├── to/  ← Current working directory [cwd]
|   │   └── cats.gif
|   │
|   └── dog_breeds.txt  ← Accessing this file
|
└── animals.csv
49] [
/
│
├── path/  ← Referencing this parent folder
|   │
|   ├── to/  ← Current working directory [cwd]
|   │   └── cats.gif
|   │
|   └── dog_breeds.txt  ← Accessing this file
|
└── animals.csv
10 hoặc
/
│
├── path/  ← Referencing this parent folder
|   │
|   ├── to/  ← Current working directory [cwd]
|   │   └── cats.gif
|   │
|   └── dog_breeds.txt  ← Accessing this file
|
└── animals.csv
11]. Tuy nhiên, tiêu chuẩn ISO cho phép các ký tự
/
│
├── path/  ← Referencing this parent folder
|   │
|   ├── to/  ← Current working directory [cwd]
|   │   └── cats.gif
|   │
|   └── dog_breeds.txt  ← Accessing this file
|
└── animals.csv
10 hoặc chỉ là ký tự
/
│
├── path/  ← Referencing this parent folder
|   │
|   ├── to/  ← Current working directory [cwd]
|   │   └── cats.gif
|   │
|   └── dog_breeds.txt  ← Accessing this file
|
└── animals.csv
48.

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

/
│
├── path/  ← Referencing this parent folder
|   │
|   ├── to/  ← Current working directory [cwd]
|   │   └── cats.gif
|   │
|   └── dog_breeds.txt  ← Accessing this file
|
└── animals.csv
10 để chỉ ra một dòng mới, trong khi các phiên bản UNIX và MAC mới hơn chỉ sử dụng ký tự
/
│
├── path/  ← Referencing this parent folder
|   │
|   ├── to/  ← Current working directory [cwd]
|   │   └── cats.gif
|   │
|   └── dog_breeds.txt  ← Accessing this file
|
└── animals.csv
48. Điều này có thể gây ra một số biến chứng khi bạn xử lý các tệp trên một hệ điều hành khác với nguồn tệp. Ở đây, một ví dụ nhanh chóng. Hãy nói rằng chúng tôi kiểm tra tệp
/
│
├── path/  ← Referencing this parent folder
|   │
|   ├── to/  ← Current working directory [cwd]
|   │   └── cats.gif
|   │
|   └── dog_breeds.txt  ← Accessing this file
|
└── animals.csv
97 đượ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 giải thích trên một thiết bị UNIX khác nhau:

/
│
├── path/  ← Referencing this parent folder
|   │
|   ├── to/  ← Current working directory [cwd]
|   │   └── cats.gif
|   │
|   └── dog_breeds.txt  ← Accessing this file
|
└── animals.csv
9

Điều này có thể làm cho việc lặp lại trên mỗi dòng có vấn đề và bạn có thể cần phải 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ột mã hóa là một bản dịch từ dữ liệu byte sang các 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ố để thể hiện một ký tự. Hai mã hóa phổ biến nhất là các đị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 có chung số lượng với các giá trị ký tự. Điều quan trọng cần lưu ý là việc phân tích một 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 về ký tự. Ví dụ: nếu một tệp được tạo bằng mã hóa UTF-8 và bạn cố gắng phân tích nó bằng mã hóa ASCII, nếu có một ký tự nằm ngoài 128 giá trị đó, thì sẽ bị lỗi.

Mở và đóng một tập tin trong Python

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

/
│
├── path/  ← Referencing this parent folder
|   │
|   ├── to/  ← Current working directory [cwd]
|   │   └── cats.gif
|   │
|   └── dog_breeds.txt  ← Accessing this file
|
└── animals.csv
17.
/
│
├── path/  ← Referencing this parent folder
|   │
|   ├── to/  ← Current working directory [cwd]
|   │   └── cats.gif
|   │
|   └── dog_breeds.txt  ← Accessing this file
|
└── animals.csv
17 có một đối số bắt buộc duy nhất là đường dẫn đến tệp.
/
│
├── path/  ← Referencing this parent folder
|   │
|   ├── to/  ← Current working directory [cwd]
|   │   └── cats.gif
|   │
|   └── dog_breeds.txt  ← Accessing this file
|
└── animals.csv
17 có một lần trả về duy nhất, đối tượng tệp:
/
│
├── path/  ← Referencing this parent folder
|   │
|   ├── to/  ← Current working directory [cwd]
|   │   └── cats.gif
|   │
|   └── dog_breeds.txt  ← Accessing this file
|
└── animals.csv
4

Sau khi bạn mở một tập tin, điều tiếp theo để học là làm thế nào để đóng nó.

Điều quan trọng cần nhớ là 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, cuối cùng một tệp sẽ được đóng. Tuy nhiên, không có gì đảm bảo khi chính xác đ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. Nó cũng là một thực tiễn 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 bất kỳ hành vi không mong muốn nào.

Khi bạn điều khiển một tệp, có hai cách bạn có thể sử dụng để đảm bảo rằng một tệp được đóng đúng, 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
40:
/
│
├── path/  ← Referencing this parent folder
|   │
|   ├── to/  ← Current working directory [cwd]
|   │   └── cats.gif
|   │
|   └── dog_breeds.txt  ← Accessing this file
|
└── animals.csv
1

Nếu bạn không quen thuộc vớ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
40 là gì, hãy xem các ngoại lệ của Python: 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
42:
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

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
42 tự động chăm sóc việc đóng tệp một 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
42, ngay cả trong trường hợp 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
42 càng nhiều càng tốt, vì nó cho phép mã sạch hơn và giúp xử lý mọi lỗi bất ngờ dễ dàng hơn cho bạn.

Nhiều khả năng, 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
46. Đố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
47, đạ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
4

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

Tính cáchNghĩ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
47
Mở để đọ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
49
Mở để viết, 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
40 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
41
Mở ở chế độ nhị phân [đọc/ghi bằng dữ liệu byte]

Hãy để Lừa 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 là:

Một đối tượng hiển thị API định 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
42 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
43] với 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
  • Các tập tin nhị phân đệm
  • Tập tin 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
44. Ở đây, một bản tóm tắt nhanh chóng về cách mọi thứ xếp hàng.

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ở:

/
│
├── path/  ← Referencing this parent folder
|   │
|   ├── to/  ← Current working directory [cwd]
|   │   └── cats.gif
|   │
|   └── dog_breeds.txt  ← Accessing this file
|
└── animals.csv
20

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

/
│
├── path/  ← Referencing this parent folder
|   │
|   ├── to/  ← Current working directory [cwd]
|   │   └── cats.gif
|   │
|   └── dog_breeds.txt  ← Accessing this file
|
└── animals.csv
17 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
46:

>>>

/
│
├── path/  ← Referencing this parent folder
|   │
|   ├── to/  ← Current working directory [cwd]
|   │   └── cats.gif
|   │
|   └── dog_breeds.txt  ← Accessing this file
|
└── animals.csv
21

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

/
│
├── path/  ← Referencing this parent folder
|   │
|   ├── to/  ← Current working directory [cwd]
|   │   └── cats.gif
|   │
|   └── dog_breeds.txt  ← Accessing this file
|
└── animals.csv
17.

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

Một loại tệp nhị phân được đệm được sử dụng để đọc và viết các 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ở:

/
│
├── path/  ← Referencing this parent folder
|   │
|   ├── to/  ← Current working directory [cwd]
|   │   └── cats.gif
|   │
|   └── dog_breeds.txt  ← Accessing this file
|
└── animals.csv
22

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

/
│
├── path/  ← Referencing this parent folder
|   │
|   ├── to/  ← Current working directory [cwd]
|   │   └── cats.gif
|   │
|   └── dog_breeds.txt  ← Accessing this file
|
└── animals.csv
17 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
46:

>>>

/
│
├── path/  ← Referencing this parent folder
|   │
|   ├── to/  ← Current working directory [cwd]
|   │   └── cats.gif
|   │
|   └── dog_breeds.txt  ← Accessing this file
|
└── animals.csv
23

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

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

Một loại tệp nhị phân được đệm được sử dụng để đọc và viết các 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ở:

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

/
│
├── path/  ← Referencing this parent folder
|   │
|   ├── to/  ← Current working directory [cwd]
|   │   └── cats.gif
|   │
|   └── dog_breeds.txt  ← Accessing this file
|
└── animals.csv
17 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
46:

>>>

/
│
├── path/  ← Referencing this parent folder
|   │
|   ├── to/  ← Current working directory [cwd]
|   │   └── cats.gif
|   │
|   └── dog_breeds.txt  ← Accessing this file
|
└── animals.csv
24

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

>>>

/
│
├── path/  ← Referencing this parent folder
|   │
|   ├── to/  ← Current working directory [cwd]
|   │   └── cats.gif
|   │
|   └── dog_breeds.txt  ← Accessing this file
|
└── animals.csv
25

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

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

Một loại tệp nhị phân được đệm được sử dụng để đọc và viết các 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ở:
/
│
├── path/  ← Referencing this parent folder
|   │
|   ├── to/  ← Current working directory [cwd]
|   │   └── cats.gif
|   │
|   └── dog_breeds.txt  ← Accessing this file
|
└── animals.csv
17 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
49 hoặc
/
│
├── path/  ← Referencing this parent folder
|   │
|   ├── to/  ← Current working directory [cwd]
|   │   └── cats.gif
|   │
|   └── dog_breeds.txt  ← Accessing this file
|
└── animals.csv
200:
Đây là đối tượng tệp mặc định được trả về bởi reader = open['dog_breeds.txt'] try: # Further file processing goes here finally: reader.close[] 7.Các loại tệp thô
Một loại tệp thô là:Nói chung, được sử dụng như một khối xây dựng cấp thấp cho các luồng nhị phân và văn bản. [Nguồn]
Do đó, nó thường không được sử dụng.Ở đây, một ví dụ về cách các tệp này được mở:
/
│
├── path/  ← Referencing this parent folder
|   │
|   ├── to/  ← Current working directory [cwd]
|   │   └── cats.gif
|   │
|   └── dog_breeds.txt  ← Accessing this file
|
└── animals.csv
207

>>>

/
│
├── path/  ← Referencing this parent folder
|   │
|   ├── to/  ← Current working directory [cwd]
|   │   └── cats.gif
|   │
|   └── dog_breeds.txt  ← Accessing this file
|
└── animals.csv
26

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

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

>>>

/
│
├── path/  ← Referencing this parent folder
|   │
|   ├── to/  ← Current working directory [cwd]
|   │   └── cats.gif
|   │
|   └── dog_breeds.txt  ← Accessing this file
|
└── animals.csv
27
/
│
├── path/  ← Referencing this parent folder
|   │
|   ├── to/  ← Current working directory [cwd]
|   │   └── cats.gif
|   │
|   └── dog_breeds.txt  ← Accessing this file
|
└── animals.csv
211

>>>

/
│
├── path/  ← Referencing this parent folder
|   │
|   ├── to/  ← Current working directory [cwd]
|   │   └── cats.gif
|   │
|   └── dog_breeds.txt  ← Accessing this file
|
└── animals.csv
28

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

>>>

/
│
├── path/  ← Referencing this parent folder
|   │
|   ├── to/  ← Current working directory [cwd]
|   │   └── cats.gif
|   │
|   └── dog_breeds.txt  ← Accessing this file
|
└── animals.csv
29

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 7 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 pháp này. Dưới đây, một ví dụ về cách mở và đọc toàn bộ tệp bằng / │ ├── path/ | │ │ ├── to/ │ │ └── cats.gif │ │ │ └── dog_breeds.txt | └── animals.csv 13:

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

/
│
├── path/  ← Referencing this parent folder
|   │
|   ├── to/  ← Current working directory [cwd]
|   │   └── cats.gif
|   │
|   └── dog_breeds.txt  ← Accessing this file
|
└── animals.csv
214:

>>>

/
│
├── path/  ← Referencing this parent folder
|   │
|   ├── to/  ← Current working directory [cwd]
|   │   └── cats.gif
|   │
|   └── dog_breeds.txt  ← Accessing this file
|
└── animals.csv
60

Dưới đây, 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

/
│
├── path/  ← Referencing this parent folder
|   │
|   ├── to/  ← Current working directory [cwd]
|   │   └── cats.gif
|   │
|   └── dog_breeds.txt  ← Accessing this file
|
└── animals.csv
211:

>>>

/
│
├── path/  ← Referencing this parent folder
|   │
|   ├── to/  ← Current working directory [cwd]
|   │   └── cats.gif
|   │
|   └── dog_breeds.txt  ← Accessing this file
|
└── animals.csv
61

Dưới đây, 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

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

>>>

/
│
├── path/  ← Referencing this parent folder
|   │
|   ├── to/  ← Current working directory [cwd]
|   │   └── cats.gif
|   │
|   └── dog_breeds.txt  ← Accessing this file
|
└── animals.csv
62

Dưới đây, 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

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

/
│
├── path/  ← Referencing this parent folder
|   │
|   ├── to/  ← Current working directory [cwd]
|   │   └── cats.gif
|   │
|   └── dog_breeds.txt  ← Accessing this file
|
└── animals.csv
216 để tạo danh sách ra khỏi đối tượng tệp:Lặp lại trên từng dòng trong tệpMột điều phổ biến cần làm trong khi đọc một tệp là lặp lại trên mỗi dòng. Dưới đây, một ví dụ về cách sử dụng phương pháp Python
/
│
├── path/  ← Referencing this parent folder
|   │
|   ├── to/  ← Current working directory [cwd]
|   │   └── cats.gif
|   │
|   └── dog_breeds.txt  ← Accessing this file
|
└── animals.csv
214 để thực hiện phép lặp đó:
Ở đây, một ví dụ về cách các tệp này được mở:
Với các loại tệp này,
/
│
├── path/  ← Referencing this parent folder
|   │
|   ├── to/  ← Current working directory [cwd]
|   │   └── cats.gif
|   │
|   └── dog_breeds.txt  ← Accessing this file
|
└── animals.csv
17 sẽ trả về đối tượng tệp
/
│
├── path/  ← Referencing this parent folder
|   │
|   ├── to/  ← Current working directory [cwd]
|   │   └── cats.gif
|   │
|   └── dog_breeds.txt  ← Accessing this file
|
└── animals.csv
202:
Đọc và viết các tệp đã mở
/
│
├── path/  ← Referencing this parent folder
|   │
|   ├── to/  ← Current working directory [cwd]
|   │   └── cats.gif
|   │
|   └── dog_breeds.txt  ← Accessing this file
|
└── animals.csv
203
/
│
├── path/  ← Referencing this parent folder
|   │
|   ├── to/  ← Current working directory [cwd]
|   │   └── cats.gif
|   │
|   └── dog_breeds.txt  ← Accessing this file
|
└── animals.csv
63

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 để che phủ đọc một tập tin. Có nhiều phương thức có thể được gọi trên đối tượng tệp để giúp bạn:

/
│
├── path/  ← Referencing this parent folder
|   │
|   ├── to/  ← Current working directory [cwd]
|   │   └── cats.gif
|   │
|   └── dog_breeds.txt  ← Accessing this file
|
└── animals.csv
207

>>>

/
│
├── path/  ← Referencing this parent folder
|   │
|   ├── to/  ← Current working directory [cwd]
|   │   └── cats.gif
|   │
|   └── dog_breeds.txt  ← Accessing this file
|
└── animals.csv
64

Dưới đây, 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

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

/
│
├── path/  ← Referencing this parent folder
|   │
|   ├── to/  ← Current working directory [cwd]
|   │   └── cats.gif
|   │
|   └── dog_breeds.txt  ← Accessing this file
|
└── animals.csv
216 để tạo danh sách ra khỏi đối tượng tệp:

Lặp lại trên từng dòng trong tệpMột điều phổ biến cần làm trong khi đọc một tệp là lặp lại trên mỗi dòng. Dưới đây, một ví dụ về cách sử dụng phương pháp Python
/
│
├── path/  ← Referencing this parent folder
|   │
|   ├── to/  ← Current working directory [cwd]
|   │   └── cats.gif
|   │
|   └── dog_breeds.txt  ← Accessing this file
|
└── animals.csv
214 để thực hiện phép lặp đó:
Ở đây, một ví dụ về cách các tệp này được mở:
Với các loại tệp này,
/
│
├── path/  ← Referencing this parent folder
|   │
|   ├── to/  ← Current working directory [cwd]
|   │   └── cats.gif
|   │
|   └── dog_breeds.txt  ← Accessing this file
|
└── animals.csv
17 sẽ trả về đối tượng tệp
/
│
├── path/  ← Referencing this parent folder
|   │
|   ├── to/  ← Current working directory [cwd]
|   │   └── cats.gif
|   │
|   └── dog_breeds.txt  ← Accessing this file
|
└── animals.csv
202:
Đọc và viết các 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 để che phủ đọc một tập tin. Có nhiều phương thức có thể được gọi trên đối tượng tệp để giúp bạn: Phương pháp
Những gì nó làm Điều này đọc từ tệp dựa trên số byte / │ ├── path/ | │ │ ├── to/ │ │ └── cats.gif │ │ │ └── dog_breeds.txt | └── animals.csv 04. Nếu không có đối số nào được thông qua hoặc / │ ├── path/ | │ │ ├── to/ │ │ └── cats.gif │ │ │ └── dog_breeds.txt | └── animals.csv 05 hoặc / │ ├── path/ | │ │ ├── to/ │ │ └── cats.gif │ │ │ └── dog_breeds.txt | └── animals.csv 06 được thông qua, thì toàn bộ tệp được đọc.
Điều này đọc nhiều nhất là số lượng ký tự từ dòng. Điều này tiếp tục đến cuối dòng và sau đó quấn lại xung quanh. Nếu không có đối số nào được thông qua hoặc
/
│
├── path/  ← Referencing this parent folder
|   │
|   ├── to/  ← Current working directory [cwd]
|   │   └── cats.gif
|   │
|   └── dog_breeds.txt  ← Accessing this file
|
└── animals.csv
205 hoặc
/
│
├── path/  ← Referencing this parent folder
|   │
|   ├── to/  ← Current working directory [cwd]
|   │   └── cats.gif
|   │
|   └── dog_breeds.txt  ← Accessing this file
|
└── animals.csv
206 được thông qua, thì toàn bộ dòng [hoặc phần còn lại của dòng] sẽ được đọc.
/
│
├── path/  ← Referencing this parent folder
|   │
|   ├── to/  ← Current working directory [cwd]
|   │   └── cats.gif
|   │
|   └── dog_breeds.txt  ← Accessing this file
|
└── animals.csv
211
/
│
├── path/  ← Referencing this parent folder
|   │
|   ├── to/  ← Current working directory [cwd]
|   │   └── cats.gif
|   │
|   └── dog_breeds.txt  ← Accessing this file
|
└── animals.csv
221

>>>

/
│
├── path/  ← Referencing this parent folder
|   │
|   ├── to/  ← Current working directory [cwd]
|   │   └── cats.gif
|   │
|   └── dog_breeds.txt  ← Accessing this file
|
└── animals.csv
65

Đ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

/
│
├── path/  ← Referencing this parent folder
|   │
|   ├── to/  ← Current working directory [cwd]
|   │   └── cats.gif
|   │
|   └── dog_breeds.txt  ← Accessing this file
|
└── animals.csv
97 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 pháp này. Dưới đây, một ví dụ về cách mở và đọc toàn bộ tệp bằng
/
│
├── path/  ← Referencing this parent folder
|   │
|   ├── to/  ← Current working directory [cwd]
|   │   └── cats.gif
|   │
|   └── dog_breeds.txt  ← Accessing this file
|
└── animals.csv
213:

Dưới đây, một ví dụ về cách đọc 5 byte của một dòng mỗi lần bằng phương pháp Python
/
│
├── path/  ← Referencing this parent folder
|   │
|   ├── to/  ← Current working directory [cwd]
|   │   └── cats.gif
|   │
|   └── dog_breeds.txt  ← Accessing this file
|
└── animals.csv
214:

Dưới đây, 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

/
│
├── path/  ← Referencing this parent folder
|   │
|   ├── to/  ← Current working directory [cwd]
|   │   └── cats.gif
|   │
|   └── dog_breeds.txt  ← Accessing this file
|
└── animals.csv
211:

/
│
├── path/  ← Referencing this parent folder
|   │
|   ├── to/  ← Current working directory [cwd]
|   │   └── cats.gif
|   │
|   └── dog_breeds.txt  ← Accessing this file
|
└── animals.csv
66

Ví dụ trên cũng có thể được thực hiện bằng cách sử dụng
/
│
├── path/  ← Referencing this parent folder
|   │
|   ├── to/  ← Current working directory [cwd]
|   │   └── cats.gif
|   │
|   └── dog_breeds.txt  ← Accessing this file
|
└── animals.csv
216 để tạo danh sách ra khỏi đối tượng tệp:

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

Một điều phổ biến cần làm trong khi đọc một tệp là lặp lại trên mỗi dòng. Dưới đây, một ví dụ về cách sử dụng phương pháp Python
/
│
├── path/  ← Referencing this parent folder
|   │
|   ├── to/  ← Current working directory [cwd]
|   │   └── cats.gif
|   │
|   └── dog_breeds.txt  ← Accessing this file
|
└── animals.csv
214 để thực hiện phép lặp đó:

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

/
│
├── path/  ← Referencing this parent folder
|   │
|   ├── to/  ← Current working directory [cwd]
|   │   └── cats.gif
|   │
|   └── dog_breeds.txt  ← Accessing this file
|
└── animals.csv
211 của đối tượng tệp. Hãy nhớ rằng,
/
│
├── path/  ← Referencing this parent folder
|   │
|   ├── to/  ← Current working directory [cwd]
|   │   └── cats.gif
|   │
|   └── dog_breeds.txt  ← Accessing this file
|
└── animals.csv
211 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:

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 trên chính đối tượng tệp:

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

Bây giờ, hãy để Lặn đi vào các tập tin viết. Cũng như đọ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:

/
│
├── path/  ← Referencing this parent folder
|   │
|   ├── to/  ← Current working directory [cwd]
|   │   └── cats.gif
|   │
|   └── dog_breeds.txt  ← Accessing this file
|
└── animals.csv
253. Ở đây, một cấu trúc thư mục ví dụ:
/
│
├── path/  ← Referencing this parent folder
|   │
|   ├── to/  ← Current working directory [cwd]
|   │   └── cats.gif
|   │
|   └── dog_breeds.txt  ← Accessing this file
|
└── animals.csv
67

Chạy

/
│
├── path/  ← Referencing this parent folder
|   │
|   ├── to/  ← Current working directory [cwd]
|   │   └── cats.gif
|   │
|   └── dog_breeds.txt  ← Accessing this file
|
└── animals.csv
257 Sản xuất như sau:
/
│
├── path/  ← Referencing this parent folder
|   │
|   ├── to/  ← Current working directory [cwd]
|   │   └── cats.gif
|   │
|   └── dog_breeds.txt  ← Accessing this file
|
└── animals.csv
68

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 của

/
│
├── path/  ← Referencing this parent folder
|   │
|   ├── to/  ← Current working directory [cwd]
|   │   └── cats.gif
|   │
|   └── dog_breeds.txt  ← Accessing this file
|
└── animals.csv
253.

Nối vào một tập tin

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

/
│
├── path/  ← Referencing this parent folder
|   │
|   ├── to/  ← Current working directory [cwd]
|   │   └── cats.gif
|   │
|   └── dog_breeds.txt  ← Accessing this file
|
└── animals.csv
259 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
46:
/
│
├── path/  ← Referencing this parent folder
|   │
|   ├── to/  ← Current working directory [cwd]
|   │   └── cats.gif
|   │
|   └── dog_breeds.txt  ← Accessing this file
|
└── animals.csv
69

Khi bạn kiểm tra lại

/
│
├── path/  ← Referencing this parent folder
|   │
|   ├── to/  ← Current working directory [cwd]
|   │   └── cats.gif
|   │
|   └── dog_breeds.txt  ← Accessing this file
|
└── animals.csv
9 7, bạn sẽ thấy rằng phần đầu của tệp không thay đổi và
/
│
├── path/  ← Referencing this parent folder
|   │
|   ├── to/  ← Current working directory [cwd]
|   │   └── cats.gif
|   │
|   └── dog_breeds.txt  ← Accessing this file
|
└── animals.csv
262 hiện được thêm vào cuối tệp:

>>>

/
│
├── path/  ← Referencing this parent folder
|   │
|   ├── to/  ← Current working directory [cwd]
|   │   └── cats.gif
|   │
|   └── dog_breeds.txt  ← Accessing this file
|
└── animals.csv
0

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

Có những lúc 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, thì nó thực sự có thể được kết hợp thành các vấn đề sau:

/
│
├── path/  ← Referencing this parent folder
|   │
|   ├── to/  ← Current working directory [cwd]
|   │   └── cats.gif
|   │
|   └── dog_breeds.txt  ← Accessing this file
|
└── animals.csv
1

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

Có thể đến lúc bạn sẽ 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, 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
42 không còn có thể được sử dụng trừ khi bạn thêm một vài phương pháp ma thuật:
/
│
├── path/  ← Referencing this parent folder
|   │
|   ├── to/  ← Current working directory [cwd]
|   │   └── cats.gif
|   │
|   └── dog_breeds.txt  ← Accessing this file
|
└── animals.csv
264 và
/
│
├── path/  ← Referencing this parent folder
|   │
|   ├── to/  ← Current working directory [cwd]
|   │   └── cats.gif
|   │
|   └── dog_breeds.txt  ← Accessing this file
|
└── animals.csv
265. Bằng cách thêm những thứ này, bạn sẽ tạo ra cái mà người ta gọi là người quản lý ngữ cảnh.
/
│
├── path/  ← Referencing this parent folder
|   │
|   ├── to/  ← Current working directory [cwd]
|   │   └── cats.gif
|   │
|   └── dog_breeds.txt  ← Accessing this file
|
└── animals.csv
266 đượ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
42.
/
│
├── path/  ← Referencing this parent folder
|   │
|   ├── to/  ← Current working directory [cwd]
|   │   └── cats.gif
|   │
|   └── dog_breeds.txt  ← Accessing this file
|
└── animals.csv
268 được gọi khi thoát khỏi khối tuyên bố
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.

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

/
│
├── path/  ← Referencing this parent folder
|   │
|   ├── to/  ← Current working directory [cwd]
|   │   └── cats.gif
|   │
|   └── dog_breeds.txt  ← Accessing this file
|
└── animals.csv
2

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

/
│
├── path/  ← Referencing this parent folder
|   │
|   ├── to/  ← Current working directory [cwd]
|   │   └── cats.gif
|   │
|   └── dog_breeds.txt  ← Accessing this file
|
└── animals.csv
17 tích hợp:
/
│
├── path/  ← Referencing this parent folder
|   │
|   ├── to/  ← Current working directory [cwd]
|   │   └── cats.gif
|   │
|   └── dog_breeds.txt  ← Accessing this file
|
└── animals.csv
3

Đây là một ví dụ tốt. Bạn có nhớ hình ảnh Jack Russell dễ thương mà chúng tôi đã có không? Có lẽ bạn muốn mở các tệp

/
│
├── path/  ← Referencing this parent folder
|   │
|   ├── to/  ← Current working directory [cwd]
|   │   └── cats.gif
|   │
|   └── dog_breeds.txt  ← Accessing this file
|
└── animals.csv
229 khác nhưng không muốn phân tích tệp tiêu đề mỗi lần. Ở đây, một ví dụ về cách làm điều này. Ví dụ này cũng sử dụng trình lặp tùy chỉnh. Nếu bạn không quen thuộc với họ, hãy xem Python Iterators:
/
│
├── path/  ← Referencing this parent folder
|   │
|   ├── to/  ← Current working directory [cwd]
|   │   └── cats.gif
|   │
|   └── dog_breeds.txt  ← Accessing this file
|
└── animals.csv
4

Bây giờ bạn có thể mở các tệp

/
│
├── path/  ← Referencing this parent folder
|   │
|   ├── to/  ← Current working directory [cwd]
|   │   └── cats.gif
|   │
|   └── dog_breeds.txt  ← Accessing this file
|
└── animals.csv
229 và phân tích đúng chúng bằng cách sử dụng Trình quản lý bối cảnh tùy chỉnh của bạn:

>>>

/
│
├── path/  ← Referencing this parent folder
|   │
|   ├── to/  ← Current working directory [cwd]
|   │   └── cats.gif
|   │
|   └── dog_breeds.txt  ← Accessing this file
|
└── animals.csv
5

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

Có những lúc 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, thì nó thực sự có thể được kết hợp thành các vấn đề sau:

  • Tạo trình quản lý bối cảnh của riêng bạn
  • Có thể đến lúc bạn sẽ 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, 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
42 không còn có thể được sử dụng trừ khi bạn thêm một vài phương pháp ma thuật:
/
│
├── path/  ← Referencing this parent folder
|   │
|   ├── to/  ← Current working directory [cwd]
|   │   └── cats.gif
|   │
|   └── dog_breeds.txt  ← Accessing this file
|
└── animals.csv
264 và
/
│
├── path/  ← Referencing this parent folder
|   │
|   ├── to/  ← Current working directory [cwd]
|   │   └── cats.gif
|   │
|   └── dog_breeds.txt  ← Accessing this file
|
└── animals.csv
265. Bằng cách thêm những thứ này, bạn sẽ tạo ra cái mà người ta gọi là người quản lý ngữ cảnh.
/
│
├── path/  ← Referencing this parent folder
|   │
|   ├── to/  ← Current working directory [cwd]
|   │   └── cats.gif
|   │
|   └── dog_breeds.txt  ← Accessing this file
|
└── animals.csv
266 đượ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
42.
/
│
├── path/  ← Referencing this parent folder
|   │
|   ├── to/  ← Current working directory [cwd]
|   │   └── cats.gif
|   │
|   └── dog_breeds.txt  ← Accessing this file
|
└── animals.csv
268 được gọi khi thoát khỏi khối tuyên bố
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.
  • Dưới đây, một mẫu mà bạn có thể sử dụng để tạo lớp tùy chỉnh của mình:: read and write WAV files [audio]
  • Bây giờ bạn đã có lớp tùy chỉnh của mình hiện là người quản lý ngữ cảnh, bạn có thể sử dụng nó tương tự như : read and write AIFF and AIFC files [audio]
  • /
    │
    ├── path/  ← Referencing this parent folder
    |   │
    |   ├── to/  ← Current working directory [cwd]
    |   │   └── cats.gif
    |   │
    |   └── dog_breeds.txt  ← Accessing this file
    |
    └── animals.csv
    
    17 tích hợp:
    /
    │
    ├── path/  ← Referencing this parent folder
    |   │
    |   ├── to/  ← Current working directory [cwd]
    |   │   └── cats.gif
    |   │
    |   └── dog_breeds.txt  ← Accessing this file
    |
    └── animals.csv
    
    3
    : read and write Sun AU files
  • Đây là một ví dụ tốt. Bạn có nhớ hình ảnh Jack Russell dễ thương mà chúng tôi đã có không? Có lẽ bạn muốn mở các tệp : read and write tar archive files
  • /
    │
    ├── path/  ← Referencing this parent folder
    |   │
    |   ├── to/  ← Current working directory [cwd]
    |   │   └── cats.gif
    |   │
    |   └── dog_breeds.txt  ← Accessing this file
    |
    └── animals.csv
    
    229 khác nhưng không muốn phân tích tệp tiêu đề mỗi lần. Ở đây, một ví dụ về cách làm điều này. Ví dụ này cũng sử dụng trình lặp tùy chỉnh. Nếu bạn không quen thuộc với họ, hãy xem Python Iterators:
    /
    │
    ├── path/  ← Referencing this parent folder
    |   │
    |   ├── to/  ← Current working directory [cwd]
    |   │   └── cats.gif
    |   │
    |   └── dog_breeds.txt  ← Accessing this file
    |
    └── animals.csv
    
    4
    : work with ZIP archives
  • Bây giờ bạn có thể mở các tệp : easily create and parse configuration files
  • /
    │
    ├── path/  ← Referencing this parent folder
    |   │
    |   ├── to/  ← Current working directory [cwd]
    |   │   └── cats.gif
    |   │
    |   └── dog_breeds.txt  ← Accessing this file
    |
    └── animals.csv
    
    229 và phân tích đúng chúng bằng cách sử dụng Trình quản lý bối cảnh tùy chỉnh của bạn:
    : create or read XML based files
  • Có thể đến lúc bạn sẽ 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, 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
    
    42 không còn có thể được sử dụng trừ khi bạn thêm một vài phương pháp ma thuật:
    /
    │
    ├── path/  ← Referencing this parent folder
    |   │
    |   ├── to/  ← Current working directory [cwd]
    |   │   └── cats.gif
    |   │
    |   └── dog_breeds.txt  ← Accessing this file
    |
    └── animals.csv
    
    264 và
    /
    │
    ├── path/  ← Referencing this parent folder
    |   │
    |   ├── to/  ← Current working directory [cwd]
    |   │   └── cats.gif
    |   │
    |   └── dog_breeds.txt  ← Accessing this file
    |
    └── animals.csv
    
    265. Bằng cách thêm những thứ này, bạn sẽ tạo ra cái mà người ta gọi là người quản lý ngữ cảnh.
    : read and write Microsoft Installer files
  • /
    │
    ├── path/  ← Referencing this parent folder
    |   │
    |   ├── to/  ← Current working directory [cwd]
    |   │   └── cats.gif
    |   │
    |   └── dog_breeds.txt  ← Accessing this file
    |
    └── animals.csv
    
    266 đượ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
    
    42.
    /
    │
    ├── path/  ← Referencing this parent folder
    |   │
    |   ├── to/  ← Current working directory [cwd]
    |   │   └── cats.gif
    |   │
    |   └── dog_breeds.txt  ← Accessing this file
    |
    └── animals.csv
    
    268 được gọi khi thoát khỏi khối tuyên bố
    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.
    : generate and parse Mac OS X
    /
    │
    ├── path/  ← Referencing this parent folder
    |   │
    |   ├── to/  ← Current working directory [cwd]
    |   │   └── cats.gif
    |   │
    |   └── dog_breeds.txt  ← Accessing this file
    |
    └── animals.csv
    
    284 files
Dưới đây, một mẫu mà bạn có thể sử dụng để tạo lớp tùy chỉnh của mình:: read and write WAV files [audio]
  • Bây giờ bạn đã có lớp tùy chỉnh của mình hiện là người quản lý ngữ cảnh, bạn có thể sử dụng nó tương tự như
    /
    │
    ├── path/  ← Referencing this parent folder
    |   │
    |   ├── to/  ← Current working directory [cwd]
    |   │   └── cats.gif
    |   │
    |   └── dog_breeds.txt  ← Accessing this file
    |
    └── animals.csv
    
    17 tích hợp:: read and write AIFF and AIFC files [audio]
    : PDF toolkit
  • Đây là một ví dụ tốt. Bạn có nhớ hình ảnh Jack Russell dễ thương mà chúng tôi đã có không? Có lẽ bạn muốn mở các tệp
    /
    │
    ├── path/  ← Referencing this parent folder
    |   │
    |   ├── to/  ← Current working directory [cwd]
    |   │   └── cats.gif
    |   │
    |   └── dog_breeds.txt  ← Accessing this file
    |
    └── animals.csv
    
    229 khác nhưng không muốn phân tích tệp tiêu đề mỗi lần. Ở đây, một ví dụ về cách làm điều này. Ví dụ này cũng sử dụng trình lặp tùy chỉnh. Nếu bạn không quen thuộc với họ, hãy xem Python Iterators:: read and write Sun AU files
    : read and write Excel files
  • Bây giờ bạn có thể mở các tệp
    /
    │
    ├── path/  ← Referencing this parent folder
    |   │
    |   ├── to/  ← Current working directory [cwd]
    |   │   └── cats.gif
    |   │
    |   └── dog_breeds.txt  ← Accessing this file
    |
    └── animals.csv
    
    229 và phân tích đúng chúng bằng cách sử dụng Trình quản lý bối cảnh tùy chỉnh của bạn:: read and write tar archive files
    : image reading and manipulation

/ │ ├── path/ | │ │ ├── to/ │ │ └── cats.gif │ │ │ └── dog_breeds.txt | └── animals.csv 79: Làm việc với kho lưu trữ zip

/
│
├── path/  ← Referencing this parent folder
|   │
|   ├── to/  ← Current working directory [cwd]
|   │   └── cats.gif
|   │
|   └── dog_breeds.txt  ← Accessing this file
|
└── animals.csv
280: Dễ dàng tạo và phân tích các tệp cấu hình
/
│
├── path/  ← Referencing this parent folder
|   │
|   ├── to/  ← Current working directory [cwd]
|   │   └── cats.gif
|   │
|   └── dog_breeds.txt  ← Accessing this file
|
└── animals.csv
281: Tạo hoặc đọc các tệp dựa trên XML
  • /
    │
    ├── path/  ← Referencing this parent folder
    |   │
    |   ├── to/  ← Current working directory [cwd]
    |   │   └── cats.gif
    |   │
    |   └── dog_breeds.txt  ← Accessing this file
    |
    └── animals.csv
    
    282: Đọc và ghi các tệp trình cài đặt Microsoft
  • /
    │
    ├── path/  ← Referencing this parent folder
    |   │
    |   ├── to/  ← Current working directory [cwd]
    |   │   └── cats.gif
    |   │
    |   └── dog_breeds.txt  ← Accessing this file
    |
    └── animals.csv
    
    283: Tạo và phân tích các tệp Mac OS X
    /
    │
    ├── path/  ← Referencing this parent folder
    |   │
    |   ├── to/  ← Current working directory [cwd]
    |   │   └── cats.gif
    |   │
    |   └── dog_breeds.txt  ← Accessing this file
    |
    └── animals.csv
    
    284
  • Có rất nhiều điều ngoài kia. Ngoài ra, thậm chí còn có nhiều công cụ bên thứ ba có sẵn trên PYPI. Một số người phổ biến là như sau:
  • /
    │
    ├── path/  ← Referencing this parent folder
    |   │
    |   ├── to/  ← Current working directory [cwd]
    |   │   └── cats.gif
    |   │
    |   └── dog_breeds.txt  ← Accessing this file
    |
    └── animals.csv
    
    285: Bộ công cụ PDF
  • /
    │
    ├── path/  ← Referencing this parent folder
    |   │
    |   ├── to/  ← Current working directory [cwd]
    |   │   └── cats.gif
    |   │
    |   └── dog_breeds.txt  ← Accessing this file
    |
    └── animals.csv
    
    286: Đọc và ghi các tệp Excel
/
│
├── path/  ← Referencing this parent folder
|   │
|   ├── to/  ← Current working directory [cwd]
|   │   └── cats.gif
|   │
|   └── dog_breeds.txt  ← Accessing this file
|
└── animals.csv
287: Đọc và thao tác hình ảnh

Bạn là một pháp sư tập tin Harry! This tutorial has a related video course created by the Real Python team. Watch it together with the written tutorial to deepen your understanding: Reading and Writing Files in Python This tutorial has a related video course created by the Real Python team. Watch it together with the written tutorial to deepen your understanding: Reading and Writing Files in Python

Bài Viết Liên Quan

Chủ Đề