Tôi muốn đọc tệp đầu vào, từng dòng, sau đó sửa đổi một dòng và ghi lại các thay đổi thành cùng một tệp
Vấn đề là, sau khi viết lại, tôi mất trở lại dòng và tôi có tất cả dữ liệu trong một dòng
open[bludescFilePath, 'a+'] as blu:
blu_file_in_lines = blu.readlines[]
for line in blu_file_in_lines:
if "Length" in line:
blu_file_in_lines[13] = line.replace["0x8000",str[size]]
with open[bludescFilePath, 'w'] as blu:
blu.write[str[blu_file_in_lines]]
Đã hỏi ngày 30 tháng 1 năm 2019 lúc 17:41Jan 30, 2019 at 17:41
1
CHỈNH SỬA
OK, những gì còn thiếu là vòng lặp.
with open[bludescFilePath, 'w'] as blu:
for line in blu_file_in_lines:
blu.write[str[line]]
Đã trả lời ngày 30 tháng 1 năm 2019 lúc 17:56Jan 30, 2019 at 17:56
ValentinovalentinoValentino
7.1616 Huy hiệu vàng18 Huy hiệu bạc33 Huy hiệu đồng6 gold badges18 silver badges33 bronze badges
0
- Nhà
- Python: Cách đọc và ghi tệp
. Tìm hiểu khoa học dữ liệu bằng cách hoàn thành các thách thức mã hóa tương tác và xem video của các giảng viên chuyên gia. Bắt đầu bây giờ!
Cập nhật vào ngày 07 tháng 1 năm 2020
Trong bài đăng này, chúng tôi sẽ tìm hiểu cách đọc và ghi các tệp trong Python.
Làm việc với các tệp bao gồm ba bước sau:
- Mở tệp tin
- Thực hiện hoạt động đọc hoặc viết
- Đóng tệp
Hãy xem chi tiết xem từng bước một.
Các loại tệp #
Có hai loại tệp:
- Tệp văn bản
- Tập tin nhị phân
Một tệp văn bản chỉ đơn giản là một tệp lưu trữ các chuỗi ký tự bằng cách sử dụng mã hóa như UTF-8, Latin1, v.v., trong khi trong trường hợp dữ liệu tệp nhị phân được lưu trữ ở cùng định dạng như trong bộ nhớ máy tính.
Dưới đây là một số ví dụ về văn bản và tệp nhị phân:
Tệp văn bản: Mã nguồn Python, tệp HTML, tệp văn bản, tệp Markdown, v.v.
Tệp nhị phân: tệp thực thi, hình ảnh, âm thanh, v.v.
Điều quan trọng cần lưu ý là bên trong đĩa, cả hai loại tệp được lưu trữ dưới dạng chuỗi 1 và 0. Sự khác biệt duy nhất là khi một tệp văn bản được mở, dữ liệu được giải mã trở lại bằng cách sử dụng cùng một sơ đồ mã hóa, chúng được mã hóa. Tuy nhiên, trong trường hợp các tệp nhị phân không & nbsp; điều đó xảy ra.
Mở hàm - open [] hàm #
Chức năng tích hợp
The caged bird sings with a fearful trill of things unknown but longed for still6 được sử dụng để mở tệp. Cú pháp của nó như sau:
open[filename, mode] -> file object
Khi thành công,
The caged bird sings with a fearful trill of things unknown but longed for still6 trả về một đối tượng tệp. Khi thất bại, nó tăng
The caged bird sings with a fearful trill of things unknown but longed for still8 hoặc lớp con.
The caged bird sings with a fearful trill of things unknown but longed for still9 | Đường dẫn tuyệt đối hoặc tương đối của tập tin sẽ được mở. |
1 2 3 4 5 6 7 8 9 10 11 12 13 140 | . |
Sau đây là các giá trị có thể của chế độ.
1 2 3 4 5 6 7 8 9 10 11 12 13 141 | Mở tệp để đọc [mặc định]. |
1 2 3 4 5 6 7 8 9 10 11 12 13 142 | Mở tệp để viết. |
1 2 3 4 5 6 7 8 9 10 11 12 13 143 | Mở tệp ở chế độ phụ lục, tức là thêm dữ liệu mới vào cuối tệp. |
1 2 3 4 5 6 7 8 9 10 11 12 13 144 | Mở tệp để đọc và viết cả hai |
1 2 3 4 5 6 7 8 9 10 11 12 13 145 | Mở tệp để viết, chỉ khi nó không tồn tại. |
Chúng tôi cũng có thể nối các
1 2 3 4 5 6 7 8 9 10 11 12 13 146 hoặc
1 2 3 4 5 6 7 8 9 10 11 12 13 147 vào chuỗi chế độ để cho biết loại tệp chúng tôi sẽ làm việc.
1 2 3 4 5 6 7 8 9 10 11 12 13 146 được sử dụng cho tệp văn bản và
1 2 3 4 5 6 7 8 9 10 11 12 13 147 cho các tệp nhị phân. Nếu không được chỉ định,
1 2 3 4 5 6 7 8 9 10 11 12 13 146 được giả định theo mặc định.
1 2 3 4 5 6 7 8 9 10 11 12 13 140 là tùy chọn, nếu không được chỉ định thì tệp sẽ được mở dưới dạng tệp văn bản để chỉ đọc.
Điều này có nghĩa là ba cuộc gọi sau đây đến
The caged bird sings with a fearful trill of things unknown but longed for still6 là tương đương:
# open file todo.md for reading in text mode open['todo.md'] open['todo.md', 'r'] open['todo.md', 'rt'] |
Lưu ý rằng trước khi bạn có thể đọc một tệp, nó phải tồn tại, nếu không
The caged bird sings with a fearful trill of things unknown but longed for still6 sẽ tăng ngoại lệ
>>> >>> f = open["poem.txt", "r"] >>> >>> f.read[3] # read the first 3 characters 'The' >>> >>> f.read[] # read the remaining characters in the file. ' caged bird sings\nwith a fearful trill\nof things unknown\nbut longed for still\n' >>> >>> f.read[] # End of the file [EOF] is reached '' >>> >>> f.close[] >>>4. Tuy nhiên, nếu bạn mở một tệp để viết [sử dụng chế độ như
1 2 3 4 5 6 7 8 9 10 11 12 13 142,
1 2 3 4 5 6 7 8 9 10 11 12 13 143 hoặc
1 2 3 4 5 6 7 8 9 10 11 12 13 144], Python sẽ tự động tạo tệp cho bạn. Nếu tệp đã tồn tại thì nội dung của nó sẽ bị xóa. Nếu bạn muốn ngăn chặn việc mở tệp ở chế độ
1 2 3 4 5 6 7 8 9 10 11 12 13 145.
Đóng phương thức tệp - đóng [] #
Khi bạn hoàn thành làm việc với tệp, bạn nên đóng nó. Mặc dù, tệp được tự động đóng khi chương trình kết thúc nhưng nó vẫn là một thực tế tốt để làm điều đó một cách rõ ràng. Không đóng tệp trong một chương trình lớn có thể có vấn đề và thậm chí có thể khiến chương trình gặp sự cố.
Để đóng tệp, hãy gọi phương thức
>>> >>> f = open["poem.txt", "r"] >>> >>> f.read[3] # read the first 3 characters 'The' >>> >>> f.read[] # read the remaining characters in the file. ' caged bird sings\nwith a fearful trill\nof things unknown\nbut longed for still\n' >>> >>> f.read[] # End of the file [EOF] is reached '' >>> >>> f.close[] >>>9 của đối tượng tệp. Đóng tệp giải phóng các tài nguyên liên quan đến nó và xóa dữ liệu trong bộ đệm vào đĩa.
Con trỏ tệp #
Khi bạn mở một tệp thông qua phương thức
The caged bird sings with a fearful trill of things unknown but longed for still6. Hệ điều hành liên kết một con trỏ trỏ đến một ký tự trong tệp. Con trỏ tệp xác định từ nơi hoạt động đọc và ghi sẽ diễn ra. Ban đầu, con trỏ tệp chỉ vào đầu tệp và tiến bộ khi chúng tôi đọc và ghi dữ liệu vào tệp. Sau đó trong bài đăng này, chúng ta sẽ xem cách xác định vị trí hiện tại của con trỏ tệp và sử dụng nó để truy cập ngẫu nhiên các phần của tệp.
Đọc các tệp bằng cách đọc [], readline [] và readlines [] #
Để đọc dữ liệu, đối tượng tệp cung cấp các phương thức sau:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 231 | Đọc và trả về 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 232 byte hoặc ít hơn [nếu không có đủ ký tự để đọc] từ tệp dưới dạng chuỗi. Nếu 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 232 không được chỉ định, nó sẽ đọc toàn bộ tệp dưới dạng chuỗi và trả về nó. |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 234 | Đọc và trả về các ký tự cho đến khi kết thúc dòng được đạt được dưới dạng chuỗi. |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 235 | Đọc và trả về tất cả các dòng như một danh sách các chuỗi. |
Khi kết thúc của tệp [EOF] đạt được các phương thức
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 236 và
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 234 trả về một chuỗi trống, trong khi
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 235 trả về một danh sách trống [
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 239].
Dưới đây là một số ví dụ:
poem.txt
The caged bird sings with a fearful trill of things unknown but longed for still |
Ví dụ 1: Sử dụng 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
6: Using
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 236
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | >>> >>> f = open["poem.txt", "r"] >>> >>> f.read[3] # read the first 3 characters 'The' >>> >>> f.read[] # read the remaining characters in the file. ' caged bird sings\nwith a fearful trill\nof things unknown\nbut longed for still\n' >>> >>> f.read[] # End of the file [EOF] is reached '' >>> >>> f.close[] >>> |
Ví dụ 2: Sử dụng 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
4: Using
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 234
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | >>> >>> f = open["poem.txt", "r"] >>> >>> f.read[4] # read first 4 characters 'The ' >>> >>> f.readline[] # read until the end of the line is reached 'caged bird sings\n' >>> >>> f.readline[] # read the second line 'with a fearful trill\n' >>> >>> f.readline[] # read the third line 'of things unknown\n' >>> >>> f.readline[] # read the fourth line 'but longed for still' >>> >>> f.readline[] # EOF reached '' >>> >>> f.close[] >>> |
Ví dụ 3: Sử dụng 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
5: Using
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 235
>>> >>> f = open["poem.txt", "r"] >>> >>> f.readlines[] ['The caged bird sings\n', 'with a fearful trill\n', 'of things unknown\n', 'but longed for still\n'] >>> >>> f.readlines[] # EOF reached [] >>> >>> f.close[] >>> |
Đọc tệp trong các đoạn #
Các phương thức
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 236 [không có đối số] và
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 235 đọc tất cả dữ liệu vào bộ nhớ cùng một lúc. Vì vậy, đừng sử dụng chúng để đọc các tệp lớn.
Một cách tiếp cận tốt hơn là đọc tệp trong các đoạn bằng cách sử dụng
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 236 hoặc đọc từng dòng tệp bằng cách sử dụng
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 234, như sau:
Ví dụ: Đọc tệp trong các khối: Reading file in chunks
0
| 1
|
Ví dụ: Đọc dòng tệp từng dòng: Reading file line by line
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | 3
|
Thay vì sử dụng các phương thức
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 236 [với đối số] hoặc
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 234, bạn cũng có thể sử dụng đối tượng tệp để lặp lại nội dung của tệp một dòng tại một thời điểm.
4
|
Mã này tương đương với ví dụ trước nhưng nó ngắn gọn hơn, dễ đọc và dễ gõ hơn.
cảnh báo:
Coi chừng phương pháp
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 234, & nbsp; Nếu bạn gặp bất hạnh khi mở một tệp lớn mà không có bất kỳ dòng mới nào thì
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 234 không tốt hơn
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 236 [không có đối số]. Điều tương tự cũng đúng khi bạn sử dụng đối tượng tệp làm trình lặp.
Viết dữ liệu bằng Write [] và WriteLines [] #
Để viết dữ liệu, đối tượng tệp cung cấp hai phương thức sau:
Tranh luận | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 231 |
Đọc và trả về 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 232 byte hoặc ít hơn [nếu không có đủ ký tự để đọc] từ tệp dưới dạng chuỗi. Nếu 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 232 không được chỉ định, nó sẽ đọc toàn bộ tệp dưới dạng chuỗi và trả về nó. | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 234 |
Đọc và trả về các ký tự cho đến khi kết thúc dòng được đạt được dưới dạng chuỗi.
5 | 6
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 235
7
| 8
|
Đọc và trả về tất cả các dòng như một danh sách các chuỗi.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | open[filename, mode] -> file object0 |
Dưới đây là một ví dụ về phương pháp
with open[bludescFilePath, 'w'] as blu:
for line in blu_file_in_lines:
blu.write[str[line]]
00.
open[filename, mode] -> file object1 | open[filename, mode] -> file object2 |
Phương thức
with open[bludescFilePath, 'w'] as blu:
for line in blu_file_in_lines:
blu.write[str[line]]
00 bên trong gọi phương thức >>> >>> f = open["poem.txt", "r"] >>> >>> f.readlines[] ['The caged bird sings\n', 'with a fearful trill\n', 'of things unknown\n', 'but longed for still\n'] >>> >>> f.readlines[] # EOF reached [] >>> >>> f.close[] >>>7.
open[filename, mode] -> file object3 |
Dưới đây là một ví dụ khác mở tập tin ở chế độ phụ lục.
open[filename, mode] -> file object1 | open[filename, mode] -> file object5 |
Giả sử tệp
with open[bludescFilePath, 'w'] as blu:
for line in blu_file_in_lines:
blu.write[str[line]]
03 rất quan trọng để sử dụng và chúng tôi không muốn nó bị ghi đè. Để ngăn chặn việc mở tệp ở chế độ 1 2 3 4 5 6 7 8 9 10 11 12 13 145
open[filename, mode] -> file object6 |
Chế độ
1 2 3 4 5 6 7 8 9 10 11 12 13 145 chỉ mở tệp để viết, nếu nó không tồn tại.
Bộ đệm và Flushing #
Bộ đệm là quá trình lưu trữ dữ liệu tạm thời trước khi nó được chuyển đến một vị trí mới.
Trong trường hợp của các tệp, dữ liệu không được ghi ngay lập tức vào đĩa thay vào đó nó được lưu trữ trong bộ nhớ bộ đệm.
Lý do này đằng sau việc làm điều này là dữ liệu ghi vào đĩa cần có thời gian trái ngược với việc ghi dữ liệu vào bộ nhớ vật lý. Hãy tưởng tượng một chương trình viết dữ liệu mỗi khi phương thức
>>> >>> f = open["poem.txt", "r"] >>> >>> f.readlines[] ['The caged bird sings\n', 'with a fearful trill\n', 'of things unknown\n', 'but longed for still\n'] >>> >>> f.readlines[] # EOF reached [] >>> >>> f.close[] >>>7 được gọi. Một chương trình như vậy sẽ rất chậm.
Khi chúng tôi sử dụng bộ đệm, dữ liệu chỉ được ghi vào đĩa khi bộ đệm trở nên đầy hoặc khi phương thức
>>> >>> f = open["poem.txt", "r"] >>> >>> f.read[3] # read the first 3 characters 'The' >>> >>> f.read[] # read the remaining characters in the file. ' caged bird sings\nwith a fearful trill\nof things unknown\nbut longed for still\n' >>> >>> f.read[] # End of the file [EOF] is reached '' >>> >>> f.close[] >>>9 được gọi. Quá trình này được gọi là Flushing đầu ra. Bạn cũng có thể xóa đầu ra bằng cách sử dụng phương thức
with open[bludescFilePath, 'w'] as blu:
for line in blu_file_in_lines:
blu.write[str[line]]
08 của đối tượng tệp. Lưu ý rằng with open[bludescFilePath, 'w'] as blu:
for line in blu_file_in_lines:
blu.write[str[line]]
08 chỉ lưu dữ liệu được đệm vào đĩa. Nó không đóng tệp.Phương thức
The caged bird sings with a fearful trill of things unknown but longed for still6 cung cấp một đối số thứ ba tùy chọn để kiểm soát bộ đệm. Để tìm hiểu thêm về nó, hãy truy cập tài liệu chính thức.
Đọc và viết dữ liệu nhị phân #
Đọc và viết tệp nhị phân được thực hiện bằng cách nối
1 2 3 4 5 6 7 8 9 10 11 12 13 147 vào chuỗi chế độ.
Trong Python 3, dữ liệu nhị phân được biểu thị bằng cách sử dụng một loại đặc biệt gọi là
with open[bludescFilePath, 'w'] as blu:
for line in blu_file_in_lines:
blu.write[str[line]]
12.Loại
with open[bludescFilePath, 'w'] as blu:
for line in blu_file_in_lines:
blu.write[str[line]]
12 đại diện cho một chuỗi số số bất biến trong khoảng từ 0 đến 255.Hãy tạo một phiên bản nhị phân của bài thơ bằng cách đọc tệp
with open[bludescFilePath, 'w'] as blu:
for line in blu_file_in_lines:
blu.write[str[line]]
14.
open[filename, mode] -> file object7 | open[filename, mode] -> file object8 |
Lưu ý rằng việc lập chỉ mục một đối tượng
with open[bludescFilePath, 'w'] as blu:
for line in blu_file_in_lines:
blu.write[str[line]]
12 trả về with open[bludescFilePath, 'w'] as blu:
for line in blu_file_in_lines:
blu.write[str[line]]
16.Hãy viết bài thơ nhị phân của chúng tôi trong một tập tin mới.
open[filename, mode] -> file object9 |
Bài thơ nhị phân của chúng tôi hiện được viết vào tập tin. Để đọc nó, hãy mở tệp ở chế độ
with open[bludescFilePath, 'w'] as blu:
for line in blu_file_in_lines:
blu.write[str[line]]
17.
# open file todo.md for reading in text mode open['todo.md'] open['todo.md', 'r'] open['todo.md', 'rt']0 | # open file todo.md for reading in text mode open['todo.md'] open['todo.md', 'r'] open['todo.md', 'rt']1 |
Điều quan trọng cần lưu ý là, trong trường hợp của chúng tôi, dữ liệu nhị phân có chứa các ký tự có thể in, như bảng chữ cái, Newline, v.v. Tuy nhiên, đây sẽ không phải là trường hợp hầu hết thời gian. Điều đó có nghĩa là với dữ liệu nhị phân, chúng ta không thể sử dụng một cách đáng tin cậy
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 234 và đối tượng tệp [làm trình lặp] để đọc nội dung của tệp vì có thể không phải là ký tự dòng mới trong tệp. Cách tốt nhất để đọc dữ liệu nhị phân là đọc nó bằng các khối bằng phương pháp
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 236.
0
| # open file todo.md for reading in text mode open['todo.md'] open['todo.md', 'r'] open['todo.md', 'rt']3 |
Truy cập ngẫu nhiên bằng FSEEK [] và FTELL [] #
Trước đó trong bài đăng này, chúng tôi đã học được rằng khi tệp được mở, hệ thống liên kết một con trỏ với nó, xác định vị trí từ nơi đọc hoặc viết sẽ diễn ra.
Cho đến nay chúng tôi đã đọc và ghi các tập tin tuyến tính. Nhưng cũng có thể đọc và viết tại các vị trí cụ thể. Để đạt được điều này, đối tượng tệp cung cấp hai phương pháp sau:
20 | Trả về vị trí hiện tại của con trỏ tệp. |
21 | Di chuyển con trỏ tệp đến 22 đã cho. 22 đề cập đến số byte và 24 xác định vị trí liên quan đến đó 22 sẽ di chuyển con trỏ tệp. Giá trị mặc định của 24 là 0, điều đó có nghĩa là bù sẽ di chuyển con trỏ tệp từ đầu tệp. Nếu được đặt thành 27 hoặc 28, phần bù sẽ di chuyển con trỏ của tệp từ vị trí hiện tại hoặc từ cuối tệp, tương ứng. |
Hãy lấy một số ví dụ ngay bây giờ.
# open file todo.md for reading in text mode open['todo.md'] open['todo.md', 'r'] open['todo.md', 'rt']4 | # open file todo.md for reading in text mode open['todo.md'] open['todo.md', 'r'] open['todo.md', 'rt']5 |
Sau khi đọc 5 ký tự, con trỏ tệp hiện đang ở ký tự
1 2 3 4 5 6 7 8 9 10 11 12 13 143 [trong Word
with open[bludescFilePath, 'w'] as blu:
for line in blu_file_in_lines:
blu.write[str[line]]
30]. Vì vậy, hoạt động đọc [hoặc viết] tiếp theo sẽ bắt đầu từ thời điểm này.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | # open file todo.md for reading in text mode open['todo.md'] open['todo.md', 'r'] open['todo.md', 'rt']7 |
Bây giờ chúng tôi đã đến cuối tập tin. Tại thời điểm này, chúng ta có thể sử dụng phương thức
with open[bludescFilePath, 'w'] as blu:
for line in blu_file_in_lines:
blu.write[str[line]]
31 để tua lại con trỏ tệp đến đầu tệp, như sau:
# open file todo.md for reading in text mode open['todo.md'] open['todo.md', 'r'] open['todo.md', 'rt']8 |
Con trỏ tệp hiện đang ở đầu tệp. Tất cả các hoạt động đọc và viết từ bây giờ trở đi & nbsp; sẽ diễn ra từ đầu tệp một lần nữa.
# open file todo.md for reading in text mode open['todo.md'] open['todo.md', 'r'] open['todo.md', 'rt']9 |
Để di chuyển con trỏ tệp từ 12 byte về phía trước từ vị trí hiện tại, hãy gọi
with open[bludescFilePath, 'w'] as blu:
for line in blu_file_in_lines:
blu.write[str[line]]
32 như sau:
The caged bird sings with a fearful trill of things unknown but longed for still0 |
Con trỏ tệp hiện đang ở ký tự
1 2 3 4 5 6 7 8 9 10 11 12 13 143 [sau từ
with open[bludescFilePath, 'w'] as blu:
for line in blu_file_in_lines:
blu.write[str[line]]
34], vì vậy hoạt động đọc và ghi sẽ diễn ra từ đó.
The caged bird sings with a fearful trill of things unknown but longed for still1 |
Chúng ta cũng có thể di chuyển con trỏ tệp ngược. Ví dụ: cuộc gọi sau đến
with open[bludescFilePath, 'w'] as blu:
for line in blu_file_in_lines:
blu.write[str[line]]
32 di chuyển con trỏ tệp 13 byte ngược từ vị trí hiện tại.
The caged bird sings with a fearful trill of things unknown but longed for still2 |
Giả sử chúng tôi muốn đọc 16 byte cuối cùng của tệp. Để làm như vậy, hãy di chuyển con trỏ tệp 16 byte lùi so với cuối tệp.
The caged bird sings with a fearful trill of things unknown but longed for still3 |
Các giá trị của đối số
with open[bludescFilePath, 'w'] as blu:
for line in blu_file_in_lines:
blu.write[str[line]]
24 của with open[bludescFilePath, 'w'] as blu:
for line in blu_file_in_lines:
blu.write[str[line]]
31 cũng được định nghĩa là hằng số trong mô -đun with open[bludescFilePath, 'w'] as blu:
for line in blu_file_in_lines:
blu.write[str[line]]
38.
39 | 40 |
27 | 42 |
28 | 44 |
với câu lệnh #
Tuyên bố với cho phép chúng tôi tự động đóng tệp sau khi chúng tôi hoàn thành làm việc với nó.Cú pháp của nó như sau:
The caged bird sings with a fearful trill of things unknown but longed for still4 |
Các câu lệnh bên trong câu lệnh
with open[bludescFilePath, 'w'] as blu:
for line in blu_file_in_lines:
blu.write[str[line]]
34 phải được thụt vào như nhau giống như vòng lặp, nếu không with open[bludescFilePath, 'w'] as blu:
for line in blu_file_in_lines:
blu.write[str[line]]
46 ngoại lệ sẽ được nêu ra.Đây là một ví dụ:
The caged bird sings with a fearful trill of things unknown but longed for still5 |
Hướng dẫn khác [Nhà tài trợ]
Trang web này được hỗ trợ rộng rãi bởi DataCamp.DataCamp cung cấp các hướng dẫn Python tương tác trực tuyến cho khoa học dữ liệu.Tham gia hơn một triệu người học khác và bắt đầu học Python cho khoa học dữ liệu ngay hôm nay!