Xử lý File trong Python | Lập trình Python

DevNotes
By -
0

 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]

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à :

2. Đọc một file - read

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]

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]

để 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]

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]

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 

6.1 Bạn có thể sắp xếp theo key và thụt lề dạng 
[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 json
person = {"name": "Bob", "age": 30, "city": "New York"} # dict
with open("./data.json", mode="w") as f:
json.dump(person, f, indent=4)
[/code]
kết quả ghi được một file 
[code lang="python"]
{
"name": "Bob",
"age": 30,
"city": "New York"
}
[/code]

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]

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]

Đăng nhận xét

0 Nhận xét

Đăng nhận xét (0)
3/related/default