Có nhiều cách để chúng ta có thể Ghi đè lên một tệp trong Python. Chúng tôi sẽ sử dụng một số phương pháp đơn giản để ghi đè lên một tệp trong Python
Ghi đè tệp bằng phương thức seek[] và truncate[]
sử dụng tập tin. tìm kiếm [] và tập tin. truncate[] chúng ta có thể ghi đè lên tệp Python
Trước tiên, chúng ta cần mở tệp mà chúng ta muốn ghi đè lên tệp, nhưng chúng ta chỉ cần mở tệp ở chế độ đọc và bằng cách sử dụng phương thức seek[] được sử dụng để thay đổi vị trí của xử lý tệp thành một vị trí đã chỉ định
Tiếp theo, ghi dữ liệu mới và sau đó sử dụng phương thức truncate[] để xóa dữ liệu cũ
Mã Python để ghi đè lên một tập tin
with open['myFolder/myfile.txt','r+'] as myfile: data = myfile.read[] myfile.seek[0] myfile.write['newData'] myfile.truncate[]
Bằng cách triển khai đoạn mã trên, chúng ta có thể ghi đè lên tệp bằng Python bằng cách sử dụng các phương thức truncate[] và seek[]
Ghi đè tệp bằng phương thức open[] và write[] trong Python
Tương tự như vậy, phương thức truncate[] và seek[] chúng ta cũng có thể ghi đè lên một tệp bằng cách sử dụng các phương thức open[] và write[]
Phương thức open[] bao gồm hai tham số đầu tiên là một tệp, làm đầu vào, hơn nữa được gọi là đường dẫn trả về một đối tượng tệp làm đầu ra
Tham số thứ hai là chế độ, có mở tệp ở chế độ đọc 'r', chế độ ghi 'w', chế độ nối thêm 'a', v.v.
Thứ nhất, nếu chúng ta muốn đọc tệp và sau đó ghi đè lên nó, chúng ta cần mở tệp ở chế độ đọc và sau đó ghi đè lên
Mã Python sử dụng phương pháp này
with open['downloads/myfile.txt', "r"] as myfile: data = myfilef.read[] with open['downloads/myfile.txt', "w"] as myfile: myfile.write[newData]
Trong đoạn mã trên, sau khi đọc tệp, dữ liệu mới sẽ được nhập vào. Cả hai phương pháp trên đều quan trọng như nhau, học cả hai có thể hữu ích
Cuối cùng, sử dụng các phương pháp trên, chúng ta có thể ghi đè lên một tệp bằng Python. Đó là nó cho hướng dẫn này guys. Tôi nghĩ rằng bài viết này đã giúp bạn trong một số cách
Trong hướng dẫn này, chúng ta sẽ học cách sử dụng Python để thay thế một tệp văn bản hiện có bằng một tệp mới, tệp này có thể chứa nội dung khác. Theo một cách nào đó, điều này tương tự như việc tạo một tệp văn bản Python có cùng đường dẫn trong hệ điều hành của bạn. Hướng dẫn này được viết trên máy tính Windows 11, nhưng nó có thể áp dụng với các điều chỉnh rất nhỏ đối với hệ điều hành macOS và Linux
Một lời cảnh báo trước khi tiếp tục. Luôn đảm bảo rằng bạn sao lưu bất kỳ tệp nào trước khi thay đổi chúng theo chương trình
Ghi đè tệp bằng Python
Trong đoạn mã đầu tiên này, chúng tôi sẽ thay thế một tệp hiện có bằng một tệp mới. Chúng tôi bắt đầu bằng cách xác định đường dẫn tệp sẽ được ghi đè, sau đó chúng tôi xác định nội dung tệp [trong trường hợp của chúng tôi - một đối tượng chuỗi dòng đơn]. Sau đó, sử dụng chức năng mở TextIOWrapper và truy cập tệp ở dạng ghi ['w'] nhiều hơn để chúng tôi có thể lưu văn bản vào tệp mới của mình
from pathlib import Path
import datetime
# define directory path and file name
path_dir = Path['C:\WorkDir']
name_file = 'text_file.txt'
# write file contents
file_change_time = datetime.datetime.now[]
file_content = "This is our new file. The file was changed at:" + str[file_change_time]
file_path = path_dir.joinpath[name_file]
# overwrite the file
with open [file_path, 'w'] as f:
f.write['\n'+ file_content]
ghi chú
- Trong trường hợp đường dẫn tệp được chỉ định trong biến file_path không tồn tại, Python sẽ tạo tệp
- Nhưng trong trường hợp đường dẫn Hệ điều hành được lưu trữ trong path_dir không tồn tại, Python sẽ báo lỗi không tìm thấy tệp
FileNotFoundError: [Errno 2] No such file or directory:
- Nếu sử dụng chức năng mở tệp như một phần của khối With, Python sẽ xử lý việc đóng tệp văn bản của bạn và không cần gọi hàm đóng trên mọi phiên bản tệp đã mở
Thay thế tệp nếu tồn tại
Để làm cho mã của chúng tôi mạnh mẽ hơn một chút, chúng tôi có thể kiểm tra xem thư mục và tệp có tồn tại không
from pathlib import Path
import datetime
path_dir = Path['C:\WorkDir']
name_file = 'text_file.txt'
# write file contents
file_change_time = datetime.datetime.now[]
file_content = "This is our new file. The file was changed at:" + str[file_change_time]
file_path = path_dir.joinpath[name_file]
#ceck if directory and file exist - create or replace the text file
if path_dir.is_dir[]:
if file_path.is_file[]:
with open [file_path, 'w'] as f:
f.write['\n'+ file_content]
print ["Your text file was replaced."]
else:
print["The specified file didn't exist. We created a new file."]
else:
print["The specified directory doesn't exist."]
Thay thế nhiều tệp trong một thư mục
Một trường hợp sử dụng thú vị hơn là ghi đè lên nhiều tệp văn bản hoặc tệp csv trong một thư mục hệ điều hành. Hãy xem xét đoạn mã sau
Chúng ta có thể đọc và ghi nội dung vào tệp bằng Python. Chúng tôi sử dụng hàm open[]
để tạo tệp và chỉ định đường dẫn và chế độ cho tệp được yêu cầu. Điều này tạo ra một đối tượng xử lý tệp xử lý các hoạt động tệp khác nhau
Các cách ghi đè tệp trong Python
Để ghi đè lên một tập tin, chúng ta cần xóa nội dung của nó. Trong bài viết này, chúng tôi sẽ ghi đè lên một tệp bằng Python
Sử dụng tham số w
trong hàm open[]
Chúng tôi có thể mở các tệp ở các chế độ khác nhau. Chúng tôi có chế độ viết [w
], đọc [r
] và nối thêm [
with open['downloads/myfile.txt', "r"] as myfile: data = myfilef.read[] with open['downloads/myfile.txt', "w"] as myfile: myfile.write[newData]0]. Khi chúng tôi mở tệp ở chế độ ghi, nó sẽ xóa tất cả nội dung trước đó của tệp và chúng tôi có thể ghi dữ liệu vào tệp này
Ví dụ,
1
2
3
4
với mở['tệp. txt','w'] as f:
f. viết["Nội dung mới"]
Nội dung của tập tin
1
2
3
Mới Nội dung
Sử dụng hàm with open['downloads/myfile.txt', "r"] as myfile:
data = myfilef.read[]
with open['downloads/myfile.txt', "w"] as myfile:
myfile.write[newData]
1
Hàm
with open['downloads/myfile.txt', "r"] as myfile: data = myfilef.read[] with open['downloads/myfile.txt', "w"] as myfile: myfile.write[newData]2 cho phép chúng tôi xóa nội dung của tệp. Đối với điều này, chúng ta cần đảm bảo rằng con trỏ tệp nằm ở đầu tệp. Để đạt được điều này, chúng ta sử dụng hàm
with open['downloads/myfile.txt', "r"] as myfile: data = myfilef.read[] with open['downloads/myfile.txt', "w"] as myfile: myfile.write[newData]3 và đặt con trỏ về đầu
Phương pháp này phù hợp khi chúng ta mở tệp ở chế độ đọc
Xem mã dưới đây
1
2
3
4
5
6
với mở['tệp. txt','r+'] as f:
f. tìm kiếm[0]
f. viết["Nội dung mới"]
f. cắt ngắn[]
Nội dung của tập tin
1
2
3
Mới Nội dung
Trong ví dụ trên,
- Chế độ
with open['downloads/myfile.txt', "r"] as myfile: data = myfilef.read[] with open['downloads/myfile.txt', "w"] as myfile: myfile.write[newData]
4 mở tệp ở chế độ đọc và ghi w
0 đặt con trỏ tệp đến đầu tệp
Sử dụng hàm w
1
Hàm w
1 cho phép chúng ta thay thế một chuỗi đã cho bằng một chuỗi khác. Với chức năng này, chúng tôi có thể ghi đè lên một tệp hiện có bằng cách thay thế một cụm từ cụ thể
Ví dụ,
1
2
3
4
5
6
7
8
9
f1 = mở['myfile. txt','r']
dữ liệu = f1. đọc[]
dữ liệu = dữ liệu. thay thế['abc','def']
f1. đóng[]
f2 = mở['myfile. txt','w']
f2. ghi[dữ liệu]
f2. đóng[]
Nội dung của tập tin
1
2
3
đã thay thế chuỗi def
Trong đoạn mã trên,
- Đầu tiên chúng tôi mở tệp ở chế độ đọc
- Chúng tôi đọc nội dung của tập tin
- Sau đó, chúng tôi thay thế cụm từ được yêu cầu từ nội dung bằng hàm
w
1 - Chúng tôi ghi dữ liệu mới này vào cùng một tệp bằng cách mở nó ở chế độ ghi, tự động xóa nội dung trước đó của nó
Sử dụng mô-đun w
4
Đối với người dùng làm việc với Python 3, mô-đun w
4 có thể truy cập tệp và đọc và ghi nội dung. Chúng ta có thể ghi đè lên nội dung và thay thế nội dung của tệp bằng hàm w
6 và hàm w
7. Hàm w
7 thay thế một chuỗi nếu nó khớp với mẫu biểu thức chính quy hay không
Xem mã dưới đây
1
2
3
4
5
6
7
nhập lại
từ pathlib nhập Đường dẫn
đường dẫn tệp = Đường dẫn["tệp của tôi. txt"]
dữ liệu = đường dẫn tệp. read_text[]
đường dẫn tệp. write_text[re. sub[r"def",r"abc", data]]
Nội dung của tập tin
1
2
3
đã thay thế chuỗi abc
Hãy cho chúng tôi hiểu những gì đang xảy ra trong ví dụ trên
- Chúng tôi đọc tệp đã cho bằng đường dẫn của nó và chỉ định nó trong hàm
w
9 open[]
0 lưu trữ nội dung của nó trong một biến- Chúng tôi thay thế chuỗi bằng hàm
w
7 w
6 ghi nội dung của tệp mới và xóa dữ liệu trước đó
Sử dụng hàm open[]
3
Nếu chúng tôi muốn ghi đè lên tệp, chúng tôi có thể xóa nó và tạo một tệp mới. Để xóa một tập tin, chúng ta có thể sử dụng hàm open[]
3
Trước tiên, chúng tôi sẽ kiểm tra xem một tệp đã cho có tồn tại hay không bằng cách sử dụng chức năng open[]
5. Nếu tệp tồn tại, chúng tôi sẽ xóa tệp đó bằng hàm open[]
3