Xử lý file trong Python giúp open, read, write, và quản lý file trên máy tính của bạn. Cần thiết để lưu và lấy lại dữ liệu vĩnh viễn.
1. Mở một file - Open()
giúp bạn mở một file và thực hiện một hành động cụ thể với file đó
Ví dụ:
[code lang="python"]
file = open(file="./FileHandling/example.txt", mode="r")
[/code]
print(file.read()) # Đọc toàn bộ file
print(file.readline()) # Đọc 1 dòng
print(file.readlines()) # đưa hết dòng vào trong một list
file.close()
Cú pháp sẽ là open(<đường dẫn file>, <hành động với file>)
Một số hành động đối với file là :
Chúng ta sẽ dùng mode r tương ứng là Read. đọc xong nhớ close() để đóng tài nguyên lại.
[code lang="python"]
file = open(file="./FileHandling/example.txt", mode="r")print(file.read()) # Đọc toàn bộ file
print(file.readline()) # Đọc 1 dòng
print(file.readlines()) # đưa hết dòng vào trong một list
file.close()
[/code]
f = open("./FileHandling/writeEx.txt", mode="w") # write mode
f.write("Hello, Python\n")
f.write("This is new line.")
f.close()
3. Viết nội dung vào một file - write
File đã có hoặc chưa có sẽ tạo mới, nội dung sẽ ghi đè lên file này
[code lang="python"]
"""Ghi dữ liệu vào file"""f = open("./FileHandling/writeEx.txt", mode="w") # write mode
f.write("Hello, Python\n")
f.write("This is new line.")
f.close()
[/code]
f = open("./FileHandling/writeEx.txt", mode="a")
f.write("\nnoi tiep du lieu")
f.close()
để không phải ghi đè bạn dùng chế độ append. Lúc này dữ liệu cũ sẽ không bị mất đi và dữ liệu mới sẽ nối tiếp theo sau
[code lang="python"]
""" Nối tiếp dữ liệu """f = open("./FileHandling/writeEx.txt", mode="a")
f.write("\nnoi tiep du lieu")
f.close()
[/code]
"""Tự động close file sau khi hoàn thành"""
with open("./FileHandling/writeEx.txt", mode="r") as f:
print(f.read())
with open("./FileHandling/example.txt", mode="w") as f:
f.write("New data ") # ghi lại dữ liệu mới
4. Dùng with để tự động close file sau khi nào thành (best practice)
[code lang="python"]
"""Sử dụng with (nên dùng)""""""Tự động close file sau khi hoàn thành"""
with open("./FileHandling/writeEx.txt", mode="r") as f:
print(f.read())
with open("./FileHandling/example.txt", mode="w") as f:
f.write("New data ") # ghi lại dữ liệu mới
[/code]
with open("./FileHandling/images.png", "rb") as f:
data = f.read()
with open("./FileHandling/images1.png", "wb") as f:
f.write(data)
5. Đọc ghi dạng nhị phân
Bạn có thể đọc một file ảnh thành nhị phân hoặc viết file nhị phân để tạo ra một bức ảnh
Ở đây là một ví dụ đọc ra và ghi lại mới, tạo ra một file ảnh mới
[code lang="python"]
"""Đọc ghi dạng nhị phân"""with open("./FileHandling/images.png", "rb") as f:
data = f.read()
with open("./FileHandling/images1.png", "wb") as f:
f.write(data)
[/code]
6. Làm việc với Json file
Json (JavaScript Object Notation) là một định dạng dữ liệu nhẹ, dùng để giao tiếp data trong web api
Chúng ta sử dụng module json
[code lang="python"]
import json# Một biến dict
person = {"name": "Alice", "age": 25, "city": "london", "skill": ["python", "django"]}
# chuyển đổi sang json string
json_str = json.dumps(person)
print(json_str)
[/code]
Các thao tác cơ bản trong json
[code lang="python"]
json_str = json.dumps(person, indent=4, sort_keys=True)[/code]
Kết quả :
[code lang="json"]
{
"age": 25,
"city": "london",
"name": "Alice",
"skill": [
"python",
"django"
]
}
[/code]
6.2 Ví dụ chuyển đổi từ json sang dict python [code lang="python"]
import json# Chuỗi json string
data = '{"name": "Alice", "age": 25, "city": "London"}'
# Chuyển đổi về python dict
person = json.loads(data)
for p in person:
print(person[p])
[/code]
6.3 Lưu Json lại thành file
[code lang="python"]
import jsonperson = {"name": "Bob", "age": 30, "city": "New York"} # dict
with open("./data.json", mode="w") as f:
json.dump(person, f, indent=4)
[/code]
"name": "Bob",
"age": 30,
"city": "New York"
}
kết quả ghi được một file
[code lang="python"]
{"name": "Bob",
"age": 30,
"city": "New York"
}
[/code]
# Đọc json từ file
with open("./data.json", "r") as f:
dt = json.load(f)
print(dt) # {'name': 'Bob', 'age': 30, 'city': 'New York'}
6.4 Đọc dữ liệu json từ một file json
[code lang="python"]
import json# Đọc json từ file
with open("./data.json", "r") as f:
dt = json.load(f)
print(dt) # {'name': 'Bob', 'age': 30, 'city': 'New York'}
[/code]
# tạo một list
users = [
{"name": "alice", "age": 25},
{"name": "Bob", "age": 30},
]
# Ghi list thành json
with open("users.json", "w") as f:
json.dump(users, f, indent=4)
# đọc json ngược về
with open("users.json", "r") as f:
dt = json.load(f)
print(dt)
{
"name": "alice",
"age": 25
},
{
"name": "Bob",
"age": 30
}
]
6.5 Tạo một danh sách object json
[code lang="python"]
import json# tạo một list
users = [
{"name": "alice", "age": 25},
{"name": "Bob", "age": 30},
]
# Ghi list thành json
with open("users.json", "w") as f:
json.dump(users, f, indent=4)
# đọc json ngược về
with open("users.json", "r") as f:
dt = json.load(f)
print(dt)
Kết quả tạo ra file có nội dung:
[code lang="python"]
[{
"name": "alice",
"age": 25
},
{
"name": "Bob",
"age": 30
}
]
[/code]
Kết quả đọc về:
[code lang="python"]
[{'name': 'alice', 'age': 25}, {'name': 'Bob', 'age': 30}]
[/code]