Hướng dẫn how do i write to a file in python 3? - làm cách nào để ghi vào tệp trong python 3?



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.

Show

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 line
0 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 line
1 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 line
0?

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

Hướng dẫn how do i write to a file in python 3? - làm cách nào để ghi vào tệp trong python 3?

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 line
3):

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 PietersMartijn 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 line
4 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:

Loại tệpSự mô tả
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
CSVCá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
HTMLCá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
JsonKý 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 line
5.

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 line
6. Đ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 line
6. 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 line
7.

Để 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 line
6 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 line
5 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 line
9 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:

  • cat\n
    dog\n
    rat\n
    cow\n
    
    3: Sử dụng để đọc từ một tệp
  • cat\n
    dog\n
    rat\n
    cow\n
    
    4: Sử dụng để ghi vào tệp
  • cat\n
    dog\n
    rat\n
    cow\n
    
    5: Sử dụng để nối vào tệp
  • cat\n
    dog\n
    rat\n
    cow\n
    
    6: Sử dụng để đọc và ghi vào cùng một tệp

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 line
9 để 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 line
5 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

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 line
0

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 line
1

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
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 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 line
3 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 line
3 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

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 line
2

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 line
3

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
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 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.

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
2
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
5

Sử dụng with open(filename, 'a') as out: out.write(var + '\n') 6

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 line
6
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
7

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')
9

Hoạ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.

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 line
8

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 line
9

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

with open(filename, 'a') as f:
    print(var, file=f)
4. It’s important to note that, if
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 line
9 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.

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.

#!/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 line
9, 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 line
01. 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

Monday
Tuesday
Wednesday
Thursday
Friday
Saturday
Sunday
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
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.