Sự mô tả
Phương thức ghi [] ghi một chuỗi str vào tệp. Không có giá trị quay lại. Do bộ đệm, chuỗi có thể không thực sự hiển thị trong tệp cho đến khi phương thức xả [] hoặc đóng [] được gọi.write[] writes a string str to the file. There is no return value. Due to buffering, the string may not actually show up in the file until the flush[] or close[] method is called.
Cú pháp
Sau đây là Syntax cho phương thức write [] -write[] method −
fileObject.write[ str ]
Thông số
Str - đây là chuỗi được viết trong tệp. − This is the String to be written in the file.
Giá trị trả về
Phương pháp này không trả về bất kỳ giá trị nào.
Thí dụ
Ví dụ sau đây cho thấy cách sử dụng phương thức write [].
Assuming that 'foo.txt' file contains following text: This is 1st line This is 2nd line This is 3rd line This is 4th line This is 5th line
#!/usr/bin/python3 # Open a file in read/write mode fo = open["abc.txt", "r+"] print ["Name of the file: ", fo.name] str = "This is 6th line" # Write a line at the end of the file. fo.seek[0, 2] line = fo.write[ str ] # Now read complete file from beginning. fo.seek[0,0] for index in range[6]: line = next[fo] print ["Line No %d - %s" % [index, line]] # Close opened file fo.close[]
Kết quả
Khi chúng tôi chạy chương trình trên, nó tạo ra kết quả sau -
Name of the file: foo.txt Line No 0 - This is 1st line Line No 1 - This is 2nd line Line No 2 - This is 3rd line Line No 3 - This is 4th line Line No 4 - This is 5th line Line No 5 - This is 6th line
python_files_io.htm
Tôi có một tệp
Name of the file: foo.txt Line No 0 - This is 1st line Line No 1 - This is 2nd line Line No 2 - This is 3rd line Line No 3 - This is 4th line Line No 4 - This is 5th line Line No 5 - This is 6th line0 trong cùng một thư mục với tệp
Name of the file: foo.txt Line No 0 - This is 1st line Line No 1 - This is 2nd line Line No 2 - This is 3rd line Line No 3 - This is 4th line Line No 4 - This is 5th line Line No 5 - This is 6th line1 này và nó có cái này trong đó:
cat\n
dog\n
rat\n
cow\n
Làm thế nào tôi có thể lưu một var [var = 'ant'] vào dòng tiếp theo của tệp
Name of the file: foo.txt Line No 0 - This is 1st line Line No 1 - This is 2nd line Line No 2 - This is 3rd line Line No 3 - This is 4th line Line No 4 - This is 5th line Line No 5 - This is 6th line0?
Tshepang
11.7K21 Huy hiệu vàng90 Huy hiệu bạc134 Huy hiệu đồng21 gold badges90 silver badges134 bronze badges
Đã hỏi ngày 6 tháng 12 năm 2013 lúc 16:49Dec 6, 2013 at 16:49
Mở tệp ở chế độ phụ lục và viết một dòng mới [bao gồm cả bộ phân cách dòng
Name of the file: foo.txt Line No 0 - This is 1st line Line No 1 - This is 2nd line Line No 2 - This is 3rd line Line No 3 - This is 4th line Line No 4 - This is 5th line Line No 5 - This is 6th line3]:
with open[filename, 'a'] as out:
out.write[var + '\n']
Điều này thêm dòng ở cuối tệp sau tất cả các nội dung khác.
Đã trả lời ngày 6 tháng 12 năm 2013 lúc 16:50Dec 6, 2013 at 16:50
Martijn Pieters ♦ Martijn Pieters♦Martijn Pieters
996K277 Huy hiệu vàng3922 Huy hiệu bạc3263 Huy hiệu Đồng277 gold badges3922 silver badges3263 bronze badges
Chỉ để hoàn thành câu hỏi này:
Bạn cũng có thể sử dụng chức năng in.
with open[filename, 'a'] as f:
print[var, file=f]
Hàm in sẽ tự động kết thúc mỗi bản in bằng một dòng mới [trừ khi được đưa ra kết thúc thay thế trong cuộc gọi, ví dụ
Name of the file: foo.txt Line No 0 - This is 1st line Line No 1 - This is 2nd line Line No 2 - This is 3rd line Line No 3 - This is 4th line Line No 4 - This is 5th line Line No 5 - This is 6th line4 không có newlines].
Đã trả lời ngày 21 tháng 2 năm 2020 lúc 14:20Feb 21, 2020 at 14:20
SebastiansebastianSebastian
5.2765 huy hiệu vàng32 Huy hiệu bạc52 Huy hiệu đồng5 gold badges32 silver badges52 bronze badges
Giới thiệu
Python là một công cụ tuyệt vời để xử lý dữ liệu. Một số nhiệm vụ phổ biến nhất trong lập trình liên quan đến việc đọc, viết hoặc thao tác dữ liệu. Vì lý do này, nó đặc biệt hữu ích khi biết cách xử lý các định dạng tệp khác nhau lưu trữ các loại dữ liệu khác nhau.
Ví dụ: hãy xem xét một chương trình Python kiểm tra danh sách người dùng để kiểm soát truy cập. Danh sách người dùng của bạn có thể được lưu trữ dưới dạng tệp văn bản, cho phép bạn kiểm tra quyền truy cập hoặc sửa đổi quyền. Với Python, việc có thể mở, đọc, ghi vào và đóng các tệp sẽ giúp bạn làm việc với các tác vụ như thế này.
Hướng dẫn này sẽ mô tả ngắn gọn một số định dạng tệp Python có thể xử lý. Sau khi giới thiệu ngắn gọn về những người đó, bạn sẽ học cách mở, đọc và viết một tệp văn bản bằng Python 3. Khi bạn hoàn thành, bạn sẽ có thể xử lý bất kỳ tệp văn bản thuần túy nào trong Python.
Điều kiện tiên quyết
Đối với hướng dẫn này, bạn nên cài đặt Python 3 cũng như môi trường lập trình cục bộ được thiết lập trên máy tính của bạn. Nếu đây không phải là trường hợp, bạn có thể được thiết lập bằng cách làm theo hướng dẫn cài đặt và thiết lập phù hợp cho hệ điều hành của mình:
- Ubuntu 22.04 hoặc Debian 8
- Centos 7
- Mac OS X.
- Windows 10
Tiểu sử
Python rất linh hoạt và có thể xử lý một số định dạng tệp khác nhau một cách dễ dàng, bao gồm nhưng không giới hạn ở các mục sau:
Văn bản thô | Tệp văn bản trơn lưu trữ dữ liệu chỉ đại diện cho các ký tự [hoặc chuỗi] và loại trừ bất kỳ siêu dữ liệu có cấu trúc nào |
CSV | Các tệp giá trị được phân tách bằng dấu phẩy sử dụng dấu phẩy [hoặc các dấu phân cách khác] để cấu trúc dữ liệu được lưu trữ, cho phép dữ liệu được lưu theo định dạng bảng |
HTML | Các tệp ngôn ngữ đánh dấu siêu văn bản lưu trữ dữ liệu có cấu trúc dự định được hiển thị bởi một trình duyệt và thường được sử dụng với các trang web |
Json | Ký hiệu đối tượng JavaScript là một định dạng đơn giản và hiệu quả, khiến nó trở thành một trong những định dạng được sử dụng phổ biến nhất để lưu trữ và chuyển dữ liệu có cấu trúc |
Hướng dẫn này sẽ tập trung vào làm việc với các tệp văn bản thuần túy.
Bước 1 - Tạo tệp văn bản
Trước khi chúng tôi có thể bắt đầu làm việc trong Python, chúng tôi cần đảm bảo rằng chúng tôi có một tệp để làm việc. Để thực hiện việc này, hãy mở trình chỉnh sửa mã của bạn và tạo một tệp văn bản đơn giản mới có tên là
Name of the file: foo.txt Line No 0 - This is 1st line Line No 1 - This is 2nd line Line No 2 - This is 3rd line Line No 3 - This is 4th line Line No 4 - This is 5th line Line No 5 - This is 6th line5.
Trong tệp mới, nhập một vài dòng văn bản liệt kê các ngày trong tuần:
days.txt
Monday
Tuesday
Wednesday
Thursday
Friday
Saturday
Sunday
Tiếp theo, lưu tệp của bạn và ghi chú vị trí của nó. Đối với ví dụ này, người dùng của chúng tôi Sammy, đã lưu tệp ở đây dưới dạng
Name of the file: foo.txt Line No 0 - This is 1st line Line No 1 - This is 2nd line Line No 2 - This is 3rd line Line No 3 - This is 4th line Line No 4 - This is 5th line Line No 5 - This is 6th line6. Điều này sẽ rất quan trọng trong các bước sau, nơi chúng tôi mở tệp trong Python.sammy, saved the file here as
Name of the file: foo.txt Line No 0 - This is 1st line Line No 1 - This is 2nd line Line No 2 - This is 3rd line Line No 3 - This is 4th line Line No 4 - This is 5th line Line No 5 - This is 6th line6. This will be very important in later steps, where we open the file in Python.
Bây giờ bạn có một tệp để xử lý, bạn có thể bắt đầu mã.
Bước 2 - Mở tệp
Trong trình soạn thảo mã của bạn, hãy tạo một tệp Python mới và đặt tên cho nó
Name of the file: foo.txt Line No 0 - This is 1st line Line No 1 - This is 2nd line Line No 2 - This is 3rd line Line No 3 - This is 4th line Line No 4 - This is 5th line Line No 5 - This is 6th line7.
Để mở một tệp trong Python, trước tiên chúng tôi cần một số cách để liên kết tệp trên đĩa với một biến trong Python. Quá trình này được gọi là mở một tệp và biến được gọi là xử lý tệp. Chúng tôi bắt đầu bằng cách nói với Python nơi tập tin. Vị trí của tệp của bạn thường được gọi là đường dẫn tệp -
Name of the file: foo.txt Line No 0 - This is 1st line Line No 1 - This is 2nd line Line No 2 - This is 3rd line Line No 3 - This is 4th line Line No 4 - This is 5th line Line No 5 - This is 6th line6 trong ví dụ này. Tạo một biến để lưu trữ thông tin đường dẫn này.
files.py
path = '/home/sammy/days.txt'
Bây giờ, bạn có thể sử dụng chức năng Python từ ____39 để mở tệp
Name of the file: foo.txt Line No 0 - This is 1st line Line No 1 - This is 2nd line Line No 2 - This is 3rd line Line No 3 - This is 4th line Line No 4 - This is 5th line Line No 5 - This is 6th line5 của chúng tôi. Hàm
Name of the file: foo.txt Line No 0 - This is 1st line Line No 1 - This is 2nd line Line No 2 - This is 3rd line Line No 3 - This is 4th line Line No 4 - This is 5th line Line No 5 - This is 6th line9 yêu cầu đường dẫn tệp là đối số đầu tiên của nó. Các chức năng cũng chấp nhận nhiều tham số khác. Tuy nhiên, quan trọng nhất là tham số
cat\n
dog\n
rat\n
cow\n
2 tùy chọn. Đây là một chuỗi tùy chọn chỉ định chế độ mà tệp được mở. Chế độ bạn chọn sẽ phụ thuộc vào những gì bạn muốn làm với tệp. Dưới đây là một số chế độ có sẵn:
3: Sử dụng để đọc từ một tệpcat\n dog\n rat\n cow\n
4: Sử dụng để ghi vào tệpcat\n dog\n rat\n cow\n
5: Sử dụng để nối vào tệpcat\n dog\n rat\n cow\n
6: Sử dụng để đọc và ghi vào cùng một tệpcat\n dog\n rat\n cow\n
Trong ví dụ này, chúng tôi chỉ muốn đọc từ tệp, vì vậy chúng tôi sẽ sử dụng chế độ
cat\n
dog\n
rat\n
cow\n
3. Sử dụng chức năng Name of the file: foo.txt Line No 0 - This is 1st line Line No 1 - This is 2nd line Line No 2 - This is 3rd line Line No 3 - This is 4th line Line No 4 - This is 5th line Line No 5 - This is 6th line9 để mở tệp
Name of the file: foo.txt Line No 0 - This is 1st line Line No 1 - This is 2nd line Line No 2 - This is 3rd line Line No 3 - This is 4th line Line No 4 - This is 5th line Line No 5 - This is 6th line5 và gán xử lý tệp kết quả cho biến
with open[filename, 'a'] as out:
out.write[var + '\n']
0.files.py
days_file = open[path, 'r']
Bây giờ bạn đã mở tập tin, bước tiếp theo sẽ hướng dẫn bạn đọc nội dung của nó.
Bước 3 - Đọc một tệp
Vì tệp của chúng tôi đã được mở, giờ đây chúng tôi có thể thao tác nó [tức là đọc từ nó] thông qua biến mà nó được gán cho. Python cung cấp ba hoạt động liên quan để đọc thông tin từ một tệp. Hãy để một chút thời gian để hiểu làm thế nào mỗi người trong số họ hoạt động.
Sử dụng with open[filename, 'a'] as out:
out.write[var + '\n']
1
with open[filename, 'a'] as out:
out.write[var + '\n']
Hoạt động đầu tiên
with open[filename, 'a'] as out:
out.write[var + '\n']
2 trả về toàn bộ nội dung của tệp dưới dạng một chuỗi. Ví dụ:Assuming that 'foo.txt' file contains following text: This is 1st line This is 2nd line This is 3rd line This is 4th line This is 5th line0
Kết quả sẽ là:
Assuming that 'foo.txt' file contains following text: This is 1st line This is 2nd line This is 3rd line This is 4th line This is 5th line1
Lưu ý: Name of the file: foo.txt
Line No 0 - This is 1st line
Line No 1 - This is 2nd line
Line No 2 - This is 3rd line
Line No 3 - This is 4th line
Line No 4 - This is 5th line
Line No 5 - This is 6th line
3 trong chuỗi trên đại diện cho một ký tự dòng mới. Khi tương tác trực tiếp với Python [như bạn có thể chỉ cần chạy
4 từ dòng lệnh], nó sẽ sử dụng with open[filename, 'a'] as out:
out.write[var + '\n']
Name of the file: foo.txt
Line No 0 - This is 1st line
Line No 1 - This is 2nd line
Line No 2 - This is 3rd line
Line No 3 - This is 4th line
Line No 4 - This is 5th line
Line No 5 - This is 6th line
3 để hiển thị Newlines. Bạn cũng có thể sử dụng nó để thể hiện một dòng mới khi bạn đang tạo các chuỗi của riêng bạn. The
Name of the file: foo.txt Line No 0 - This is 1st line Line No 1 - This is 2nd line Line No 2 - This is 3rd line Line No 3 - This is 4th line Line No 4 - This is 5th line Line No 5 - This is 6th line3 in the above string represents a newline character. When interacting directly with Python [as you might when simply running
with open[filename, 'a'] as out:
out.write[var + '\n']
4 from the command line], it will use Name of the file: foo.txt Line No 0 - This is 1st line Line No 1 - This is 2nd line Line No 2 - This is 3rd line Line No 3 - This is 4th line Line No 4 - This is 5th line Line No 5 - This is 6th line3 to show newlines. You can also use it to represent a new line when you are creating strings of your own.
Sử dụng with open[filename, 'a'] as out:
out.write[var + '\n']
6
with open[filename, 'a'] as out:
out.write[var + '\n']
Hoạt động thứ hai
with open[filename, 'a'] as out:
out.write[var + '\n']
7 trả về dòng tiếp theo của tệp, trả lại văn bản lên và bao gồm ký tự dòng tiếp theo. Nói một cách đơn giản hơn, thao tác này sẽ đọc từng dòng tệp.Assuming that 'foo.txt' file contains following text: This is 1st line This is 2nd line This is 3rd line This is 4th line This is 5th line2
Kết quả sẽ là:
Assuming that 'foo.txt' file contains following text: This is 1st line This is 2nd line This is 3rd line This is 4th line This is 5th line3
Lưu ý:
Name of the file: foo.txt Line No 0 - This is 1st line Line No 1 - This is 2nd line Line No 2 - This is 3rd line Line No 3 - This is 4th line Line No 4 - This is 5th line Line No 5 - This is 6th line3 trong chuỗi trên đại diện cho một ký tự dòng mới. Khi tương tác trực tiếp với Python [như bạn có thể chỉ cần chạy
with open[filename, 'a'] as out:
out.write[var + '\n']
4 từ dòng lệnh], nó sẽ sử dụng Name of the file: foo.txt Line No 0 - This is 1st line Line No 1 - This is 2nd line Line No 2 - This is 3rd line Line No 3 - This is 4th line Line No 4 - This is 5th line Line No 5 - This is 6th line3 để hiển thị Newlines. Bạn cũng có thể sử dụng nó để thể hiện một dòng mới khi bạn đang tạo các chuỗi của riêng bạn.
Assuming that 'foo.txt' file contains following text: This is 1st line This is 2nd line This is 3rd line This is 4th line This is 5th line2
Assuming that 'foo.txt' file contains following text: This is 1st line This is 2nd line This is 3rd line This is 4th line This is 5th line5
Sử dụng with open[filename, 'a'] as out:
out.write[var + '\n']
6
with open[filename, 'a'] as out:
out.write[var + '\n']
Hoạt động thứ hai
with open[filename, 'a'] as out:
out.write[var + '\n']
7 trả về dòng tiếp theo của tệp, trả lại văn bản lên và bao gồm ký tự dòng tiếp theo. Nói một cách đơn giản hơn, thao tác này sẽ đọc từng dòng tệp.Assuming that 'foo.txt' file contains following text: This is 1st line This is 2nd line This is 3rd line This is 4th line This is 5th line6
Assuming that 'foo.txt' file contains following text: This is 1st line This is 2nd line This is 3rd line This is 4th line This is 5th line7
Khi bạn đọc một dòng với hoạt động
with open[filename, 'a'] as out:
out.write[var + '\n']
6, điểm hiện tại mà tệp sẽ được đọc sẽ chuyển sang dòng tiếp theo. Nếu bạn gọi lại thao tác này, nó sẽ trả lại dòng tiếp theo trong tệp như vậy:Sử dụng
with open[filename, 'a'] as out:
out.write[var + '\n']
9Hoạt động cuối cùng, with open[filename, 'a'] as f:
print[var, file=f]
0 trả về một danh sách các dòng trong tệp, trong đó mỗi mục của danh sách đại diện cho một dòng duy nhất.
with open[filename, 'a'] as f:
print[var, file=f]
Một cái gì đó cần lưu ý khi bạn đang đọc từ các tệp, một khi một tệp đã được đọc bằng một trong các hoạt động đọc, nó không thể được đọc lại. Ví dụ: nếu bạn lần đầu tiên chạy
with open[filename, 'a'] as f:
print[var, file=f]
1, sau đó là with open[filename, 'a'] as f:
print[var, file=f]
2, thao tác thứ hai sẽ trả về một chuỗi trống. Do đó, bất cứ lúc nào bạn muốn đọc từ một tệp, trước tiên bạn sẽ phải mở một biến tệp mới hoặc sử dụng phương thức with open[filename, 'a'] as f:
print[var, file=f]
3, nằm ngoài phạm vi của hướng dẫn này. Nếu bạn muốn tìm hiểu thêm, Python có tài liệu tuyệt vời về các phương pháp này.files.py
Assuming that 'foo.txt' file contains following text: This is 1st line This is 2nd line This is 3rd line This is 4th line This is 5th line8
Bây giờ chúng tôi đã đọc từ một tệp, hãy để tìm hiểu cách ghi vào một tệp mới.Step 2 is included.
files.py
Assuming that 'foo.txt' file contains following text: This is 1st line This is 2nd line This is 3rd line This is 4th line This is 5th line9
Bước 4 - Viết tệp
files.py
#!/usr/bin/python3 # Open a file in read/write mode fo = open["abc.txt", "r+"] print ["Name of the file: ", fo.name] str = "This is 6th line" # Write a line at the end of the file. fo.seek[0, 2] line = fo.write[ str ] # Now read complete file from beginning. fo.seek[0,0] for index in range[6]: line = next[fo] print ["Line No %d - %s" % [index, line]] # Close opened file fo.close[]0
Trong bước này, bạn sẽ viết một tệp mới bao gồm các ngày tiêu đề trong tuần, sau đó là nội dung của tệp đầu tiên. Đầu tiên, tạo một biến
4. It’s important to note that, if with open[filename, 'a'] as f:
print[var, file=f]
Monday
Tuesday
Wednesday
Thursday
Friday
Saturday
Sunday
1 already exists before opening the file, its old contents will be overwritten, so be careful when using the cat\n
dog\n
rat\n
cow\n
4 mode!Bạn cũng sẽ cần lưu trữ các ngày trong tuần trong một biến mà chúng tôi sẽ gọi là
with open[filename, 'a'] as f:
print[var, file=f]
5. Mã này mở tệp trong chế độ đọc, đọc tệp và lưu trữ đầu ra được trả về từ hoạt động đọc trong biến mới của chúng tôi with open[filename, 'a'] as f:
print[var, file=f]
5. Để làm cho nó dễ dàng hơn, mã từ bước 2 được bao gồm.Bây giờ bạn có các biến cho tiêu đề và ngày trong tuần, bạn có thể bắt đầu viết vào tệp mới của mình. Đầu tiên, chỉ định vị trí của tệp. Một lần nữa, chúng tôi sẽ sử dụng thư mục
with open[filename, 'a'] as f:
print[var, file=f]
7, vì vậy đường dẫn của chúng tôi sẽ là with open[filename, 'a'] as f:
print[var, file=f]
8. Sau đó, bạn có thể mở tệp mới ở chế độ ghi, sử dụng hàm Name of the file: foo.txt Line No 0 - This is 1st line Line No 1 - This is 2nd line Line No 2 - This is 3rd line Line No 3 - This is 4th line Line No 4 - This is 5th line Line No 5 - This is 6th line9 với chế độ
cat\n
dog\n
rat\n
cow\n
4 được chỉ định.files.py
#!/usr/bin/python3 # Open a file in read/write mode fo = open["abc.txt", "r+"] print ["Name of the file: ", fo.name] str = "This is 6th line" # Write a line at the end of the file. fo.seek[0, 2] line = fo.write[ str ] # Now read complete file from beginning. fo.seek[0,0] for index in range[6]: line = next[fo] print ["Line No %d - %s" % [index, line]] # Close opened file fo.close[]1
Lưu ý: Điều quan trọng cần lưu ý là, nếu
Monday
Tuesday
Wednesday
Thursday
Friday
Saturday
Sunday
1 đã tồn tại trước khi mở tệp, nội dung cũ của nó sẽ bị ghi đè, vì vậy hãy cẩn thận khi sử dụng chế độ cat\n
dog\n
rat\n
cow\n
4!Khi tệp mới được mở, bạn có thể thêm dữ liệu bằng phương thức Monday
Tuesday
Wednesday
Thursday
Friday
Saturday
Sunday
3. Phương thức này lấy một tham số chuỗi duy nhất và ghi dữ liệu đó vào tệp. Nếu bạn muốn bắt đầu một dòng mới trong tệp, bạn phải cung cấp một cách rõ ràng ký tự dòng mới, Name of the file: foo.txt
Line No 0 - This is 1st line
Line No 1 - This is 2nd line
Line No 2 - This is 3rd line
Line No 3 - This is 4th line
Line No 4 - This is 5th line
Line No 5 - This is 6th line
3, được bao gồm khi bạn gán Monday
Tuesday
Wednesday
Thursday
Friday
Saturday
Sunday
5 cho biến with open[filename, 'a'] as f:
print[var, file=f]
4.
Monday
Tuesday
Wednesday
Thursday
Friday
Saturday
Sunday
Monday
Tuesday
Wednesday
Thursday
Friday
Saturday
Sunday
with open[filename, 'a'] as f:
print[var, file=f]
Viết tiêu đề vào tập tin theo sau là những ngày trong tuần. Nó có thể hữu ích thêm vào một số câu
Monday
Tuesday
Wednesday
Thursday
Friday
Saturday
Sunday
7 về những gì chúng tôi đang viết vào tệp, thường được sử dụng để theo dõi tiến trình tập lệnh của bạn.Step 6, always make sure to close your files. For this example, close all our files using the Monday
Tuesday
Wednesday
Thursday
Friday
Saturday
Sunday
9 method.files.py
Cuối cùng, bất cứ khi nào bạn kết thúc với một tập tin, điều quan trọng là phải đóng nó.Bước 5 - Đóng tệp
Đóng một tệp đảm bảo rằng kết nối giữa tệp trên đĩa và xử lý tệp đã hoàn tất. Đóng các tệp cũng đảm bảo rằng các chương trình khác có thể truy cập chúng và giữ cho dữ liệu của bạn an toàn. Nếu bạn không sử dụng các câu lệnh Monday
Tuesday
Wednesday
Thursday
Friday
Saturday
Sunday
8 như được mô tả trong Bước 6, hãy luôn đảm bảo đóng các tệp của bạn. Đối với ví dụ này, hãy đóng tất cả các tệp của chúng tôi bằng phương thức Monday
Tuesday
Wednesday
Thursday
Friday
Saturday
Sunday
9.
Monday
Tuesday
Wednesday
Thursday
Friday
Saturday
Sunday
Monday
Tuesday
Wednesday
Thursday
Friday
Saturday
Sunday
#!/usr/bin/python3 # Open a file in read/write mode fo = open["abc.txt", "r+"] print ["Name of the file: ", fo.name] str = "This is 6th line" # Write a line at the end of the file. fo.seek[0, 2] line = fo.write[ str ] # Now read complete file from beginning. fo.seek[0,0] for index in range[6]: line = next[fo] print ["Line No %d - %s" % [index, line]] # Close opened file fo.close[]2Pythonic way] is to use a feature of the language called
Monday
Tuesday
Wednesday
Thursday
Friday
Saturday
Sunday
8 statements. These statements are shorthand ways to set up a context in which work is done and, once that context is over, final
details are automatically taken care of in order to prevent common errors. In the case of working with files, a Monday
Tuesday
Wednesday
Thursday
Friday
Saturday
Sunday
8 statement will automatically close the file so that you don’t have those file handles lingering once you are finished with your task.Như với bất kỳ khối nào trong Python, chẳng hạn như các định nghĩa chức năng, các câu lệnh
path = '/home/sammy/days.txt'
4 hoặc vòng lặp, các câu lệnh Monday
Tuesday
Wednesday
Thursday
Friday
Saturday
Sunday
8 có dạng một câu lệnh đơn giản theo sau là path = '/home/sammy/days.txt'
6 và một khối mã thụt. Dưới đây là một ví dụ về mã mở tệp và in nội dung của nó:#!/usr/bin/python3 # Open a file in read/write mode fo = open["abc.txt", "r+"] print ["Name of the file: ", fo.name] str = "This is 6th line" # Write a line at the end of the file. fo.seek[0, 2] line = fo.write[ str ] # Now read complete file from beginning. fo.seek[0,0] for index in range[6]: line = next[fo] print ["Line No %d - %s" % [index, line]] # Close opened file fo.close[]3
Hãy cùng bước đi qua những gì mã này làm từng bước một. Như trước đây, chúng tôi mở tệp bằng hàm Python Lam Buildin
Name of the file: foo.txt Line No 0 - This is 1st line Line No 1 - This is 2nd line Line No 2 - This is 3rd line Line No 3 - This is 4th line Line No 4 - This is 5th line Line No 5 - This is 6th line9, chuyển các tham số đường dẫn và chế độ tệp. Tuy nhiên, vì chúng tôi đang sử dụng câu lệnh
Monday
Tuesday
Wednesday
Thursday
Friday
Saturday
Sunday
8, thay vì gán xử lý tệp kết quả cho một biến bằng cách sử dụng path = '/home/sammy/days.txt'
9, chúng tôi gán nó bằng từ khóa days_file = open[path, 'r']
0. Đây là một phần của toàn bộ câu lệnh Monday
Tuesday
Wednesday
Thursday
Friday
Saturday
Sunday
8 Cú pháp:#!/usr/bin/python3 # Open a file in read/write mode fo = open["abc.txt", "r+"] print ["Name of the file: ", fo.name] str = "This is 6th line" # Write a line at the end of the file. fo.seek[0, 2] line = fo.write[ str ] # Now read complete file from beginning. fo.seek[0,0] for index in range[6]: line = next[fo] print ["Line No %d - %s" % [index, line]] # Close opened file fo.close[]4
Sau
path = '/home/sammy/days.txt'
6, chúng tôi chuyển sang dòng tiếp theo và thụt mã mã của chúng tôi, đó là cách Python tổ chức các khối chức năng. Như trước đây, chúng tôi có quyền truy cập vào xử lý tệp trong biến with open[filename, 'a'] as out:
out.write[var + '\n']
0, vì vậy chúng tôi có thể gọi phương thức with open[filename, 'a'] as out:
out.write[var + '\n']
2 để có được tất cả các nội dung và days_file = open[path, 'r']
5 chúng.Lưu ý làm thế nào không có phương thức
Monday
Tuesday
Wednesday
Thursday
Friday
Saturday
Sunday
9 được gọi là, tuy nhiên. Điều này là do ngay khi mã rời khỏi khối này [nghĩa là, ngay khi dòng mã tiếp theo không được thụt vào hoặc tệp kết thúc], bối cảnh câu lệnh Monday
Tuesday
Wednesday
Thursday
Friday
Saturday
Sunday
8 sẽ tự động đóng các tệp đó. Những lợi ích cho điều này không chỉ là bạn không cần nhớ đóng các tệp của mình mỗi lần, mà còn tất cả logic của bạn để xử lý tệp đó đặc biệt là khác biệt về mặt trực quan và logic trong khối đó. Cấu trúc này giúp giữ cho mã của bạn sạch sẽ và có thể đọc được.Với suy nghĩ này, hãy để viết lại mẫu mã của chúng tôi trước khi sử dụng câu lệnh
Monday
Tuesday
Wednesday
Thursday
Friday
Saturday
Sunday
8:files.py
#!/usr/bin/python3 # Open a file in read/write mode fo = open["abc.txt", "r+"] print ["Name of the file: ", fo.name] str = "This is 6th line" # Write a line at the end of the file. fo.seek[0, 2] line = fo.write[ str ] # Now read complete file from beginning. fo.seek[0,0] for index in range[6]: line = next[fo] print ["Line No %d - %s" % [index, line]] # Close opened file fo.close[]5
Bây giờ mã được tổ chức nhiều hơn nhiều. Chúng tôi bắt đầu như trước bằng cách xác định một số biến: đường dẫn của hai tệp của chúng tôi và tiêu đề mà chúng tôi sẽ sử dụng để tìm thấy tệp mới. Sau đó, chúng tôi bắt đầu câu lệnh
Monday
Tuesday
Wednesday
Thursday
Friday
Saturday
Sunday
8 của chúng tôi, mở hai tệp của chúng tôi và lưu trữ các kết nối của chúng theo các biến được đặt tên phù hợp. Như trước đây, chúng tôi đọc nội dung của with open[filename, 'a'] as out:
out.write[var + '\n']
0, sau đó viết tiêu đề và những nội dung đó thành Assuming that 'foo.txt' file contains following text: This is 1st line This is 2nd line This is 3rd line This is 4th line This is 5th line01. Cuối cùng, chúng tôi kết thúc khối bằng cách khử mã mã của chúng tôi để in các giá trị của
with open[filename, 'a'] as f:
print[var, file=f]
4 và with open[filename, 'a'] as f:
print[var, file=f]
5 mà chúng tôi đọc.Lưu ý: Không giống như một số khối khác trong Python, các biến được xác định trong các khối
8 có sẵn bên ngoài phạm vi đó. Unlike some other blocks in Python, variables defined
within Monday
Tuesday
Wednesday
Thursday
Friday
Saturday
Sunday
Monday
Tuesday
Wednesday
Thursday
Friday
Saturday
Sunday
8 blocks are available outside of that scope.Mặc dù có một số trường hợp bạn sẽ muốn sử dụng phương thức
Monday
Tuesday
Wednesday
Thursday
Friday
Saturday
Sunday
9 như được mô tả trước đó và điều quan trọng là phải biết nó hoạt động như thế nào, bạn sẽ sử dụng các câu lệnh Monday
Tuesday
Wednesday
Thursday
Friday
Saturday
Sunday
8 phổ biến nhất khi làm việc với các tệp trong Python.Bước 7 - Kiểm tra mã của chúng tôi
Trước khi bạn chạy mã của mình, đó là một ý tưởng tốt để đảm bảo mọi thứ có vẻ chính xác. Sản phẩm cuối cùng phải là một cái gì đó như thế này:
files.py
#!/usr/bin/python3 # Open a file in read/write mode fo = open["abc.txt", "r+"] print ["Name of the file: ", fo.name] str = "This is 6th line" # Write a line at the end of the file. fo.seek[0, 2] line = fo.write[ str ] # Now read complete file from beginning. fo.seek[0,0] for index in range[6]: line = next[fo] print ["Line No %d - %s" % [index, line]] # Close opened file fo.close[]6
Sau khi lưu mã của bạn, hãy mở thiết bị đầu cuối và chạy tập lệnh Python của bạn, như vậy:
#!/usr/bin/python3 # Open a file in read/write mode fo = open["abc.txt", "r+"] print ["Name of the file: ", fo.name] str = "This is 6th line" # Write a line at the end of the file. fo.seek[0, 2] line = fo.write[ str ] # Now read complete file from beginning. fo.seek[0,0] for index in range[6]: line = next[fo] print ["Line No %d - %s" % [index, line]] # Close opened file fo.close[]7
Đầu ra sẽ như sau:
#!/usr/bin/python3 # Open a file in read/write mode fo = open["abc.txt", "r+"] print ["Name of the file: ", fo.name] str = "This is 6th line" # Write a line at the end of the file. fo.seek[0, 2] line = fo.write[ str ] # Now read complete file from beginning. fo.seek[0,0] for index in range[6]: line = next[fo] print ["Line No %d - %s" % [index, line]] # Close opened file fo.close[]8
Bây giờ, hãy kiểm tra kỹ mã hoạt động đầy đủ bằng cách mở tệp mới [
Monday
Tuesday
Wednesday
Thursday
Friday
Saturday
Sunday
1]. Nếu mọi việc suôn sẻ, nó sẽ chứa điều này:new_days.txt
#!/usr/bin/python3 # Open a file in read/write mode fo = open["abc.txt", "r+"] print ["Name of the file: ", fo.name] str = "This is 6th line" # Write a line at the end of the file. fo.seek[0, 2] line = fo.write[ str ] # Now read complete file from beginning. fo.seek[0,0] for index in range[6]: line = next[fo] print ["Line No %d - %s" % [index, line]] # Close opened file fo.close[]9
Sự kết luận
Trong hướng dẫn này, chúng tôi đã trải qua cách xử lý và thao tác các tệp văn bản thuần túy trong Python 3. Bây giờ bạn có thể mở, đọc, viết và đóng các tệp trong Python và bạn có thể tiếp tục làm việc với dữ liệu của riêng mình bằng Python. Python cung cấp nhiều phương pháp hữu ích khác khi làm việc với đầu vào và đầu ra, và cũng cung cấp tài liệu để tìm hiểu thêm.