Yêu cầu:
1. Mở, đọc file và in nội dung file ra màn hình - Read
2. Mở và tự động đóng file sau khi đọc
3. Tạo và ghi file - Write
4. Ghi thêm dữ liệu vào file - Append
Thực hiện:
1. Mở, đọc file và in nội dung file ra màn hình - Read
- Soạn ile DATA.txt có nội dung như dưới:
- Thực hiện mở và đọc tất cả các dòng trong
file, in ra màn hình:
Code:
f = open("DATA.txt","r") # r - read đọc, nếu file CÓ TỒN TẠI thì sẽ mở ra và đọc, nếu KHÔNG có sẽ lỗi
print(f.read()) # đọc hết file
f.close() # đóng để giải phóng bộ nhớ
Noted:Với code trên nếu không tìm thấy file sẽ chương trình sẽ bị lỗi
và không thực hiện các lệnh bên dưới.
Kết quả:
C:\python>python Demo.py
Interface
IP-Address
OK? Method Status
Protocol
FastEthernet0/0
192.168.122.11 YES NVRAM up
up
Serial0/0
unassigned YES
NVRAM
administratively down down
FastEthernet0/1
unassigned YES
NVRAM administratively down down
Serial0/1
unassigned YES
NVRAM administratively down down
FastEthernet1/0
unassigned YES
NVRAM administratively down down
FastEthernet2/0
unassigned YES
NVRAM administratively down down
Loopback1
10.10.10.1 YES
NVRAM
up
up
Loopback2
10.10.10.2 YES
NVRAM
up
up
C:\python>
-
Hoặc đọc từng dòng từng dòng một trong
file
Code:
f = open("DATA.txt","r") # r - read đọc, nếu file CÓ TỒN TẠI thì sẽ mở ra và đọc, nếu KHÔNG có sẽ lỗi
print(f.readline()) # đọc từng dòng
print(f.readline())
print(f.readline())
print(f.readline())
f.close() # đóng để giải phóng bộ nhớ
Kết quả:
C:\python>python Demo.py
Interface
IP-Address
OK? Method
Status
Protocol
FastEthernet0/0
192.168.122.11 YES NVRAM
up
up
Serial0/0
unassigned
YES NVRAM
administratively down down
Kết quả trên cho thấy là nếu muốn đọc 4 dòng thì chúng ta phải dùng 4 dòng
print(f.readline()) (vì có dòng trên cùng là dòng trắng trên cùng nên chúng ta thấy chỉ 3
dòng) cứ mỗi lần đọc như vậy con
trỏ đọc/ghi seek() sẽ trượt,
nếu chúng chúng ta muốn truy xuất lấy lại dữ liệu từ đầu file có 2 cách:
- Cách 1: đóng file và mở lại
- Cách 2: đưa con trỏ seek() về đầu file bằng lệnh f.seek(0)
- Hoặc đọc từng dòng và đọc cho đến khi hết file.
Code:
f = open("DATA.txt","r") # r - read đọc, nếu file CÓ TỒN TẠI thì sẽ mở ra và đọc, nếu KHÔNG có sẽ lỗi
for pl in f: # đọc cho đến hết file
#print(pl) # kết quả sẽ chèn thêm dòng trắng sau mỗi dòng kết quả
print(pl, end="") # xóa bỏ dòng trắng
f.close() # đóng để giải phóng bộ nhớ
Kết quả:
2. Mở và tự động đóng file sau khi đọc.
Code:
'''
Cách mở file tự động đóng
nó sẽ tự động đóng khi kết thúc khối lệnh trong with
'''
with open("DATA.txt","r") as f:
output = f.read()
print(output)
Kết quả:
C:\python>python Demo.py
Interface
IP-Address
OK? Method
Status
Protocol
FastEthernet0/0
192.168.122.11 YES NVRAM
up
up
Serial0/0
unassigned
YES NVRAM
administratively down down
FastEthernet0/1
unassigned YES
NVRAM administratively
down down
Serial0/1
unassigned
YES NVRAM
administratively down down
FastEthernet1/0
unassigned YES
NVRAM administratively
down down
FastEthernet2/0
unassigned YES
NVRAM administratively
down down
Loopback1
10.10.10.1
YES NVRAM
up
up
Loopback2
10.10.10.2
YES NVRAM
up
up
C:\python>
3. Tạo và ghi file - Write
-
Nếu file GhiDATA.txt chưa có thì tạo file mới
với tên GhiDATA.txt
- Nếu file đã có thì ghi đè nội dung lên file này
Code:
'''
"w" - Write
- Nếu file chưa có thì tạo file mới,
- Nếu file đã tồn tại rồi thì xóa và ghi đè lên nội dung cũ
'''
f = open("GhiDATA.txt","w")
f.write("Ghi lan thu 1\n")
f.write("Ghi lan thu 2\n")
f.write("...\n")
f.write("...\n")
f.write("Ghi lan thu n")
f.flush() # thực hiện ghi nội dung vào file
f.close() # nếu không có dòng "f.flush()", khi đóng file thì python thực hiện flush trước khi đóng.
'''
Đọc file mới ghi
'''
f = open("GhiDATA.txt","r")
print(f.read())
f.close()
Kết quả:
C:\python>python Demo.py
Ghi lan thu 1
Ghi lan thu 2
...
...
Ghi lan thu n
C:\python>
4. Ghi thêm dữ liệu vào file - Append
- Nếu file GhiDATA.txt chưa có thì tạo file mới với tên GhiDATA.txt
- Nếu file đã có thì chèn/thêm nội dung cần ghi vào cuối file
Code:
'''
"a" - Append
- Nếu file chưa có thì tạo file mới,
- Nếu file đã tồn tại mở và GHI THÊM vào cuối nội dung của file
'''
f = open("GhiDATA.txt","a")
f.write("\n")
f.write("GHI THEM VAO FILE\n")
f.write("Tiep tuc GHI THEM \n")
f.flush() # thực hiện ghi nội dung vào file
f.close() # nếu không có dòng "f.flush()", khi đóng file thì python thực hiện flush trước khi đóng.
'''
Đọc file mới ghi
'''
f = open("GhiDATA.txt","r")
print(f.read())
f.close()
Kết quả:
C:\python>python Demo.py
Ghi lan thu 1
Ghi lan thu 2
...
...
Ghi lan thu n
GHI THEM VAO FILE
Tiep tuc GHI THEM
C:\python>
Xong!