import csv
FILENAME = "users.csv"
with open(FILENAME, "r", newline="") as fayl:
reader = csv.reader(fayl) for row in reader:
print(row[0], " - ", row[1])
reader obyektini olayotganda, biz uning barcha satrlarini ko'chirib olishimiz mumkin:
1
2
3
4
|
Ali - 25
Sobir - 32
Dilnoza - 14
Shaxnoza - 18
| 3. Lug'atlar bilan ishlash
Yuqoridagi misolda har bir yozuv yoki satr alohida ro'yxat bo'lib, masalan, ["Shaxnoza", 18]. Bundan tashqari, CSV modullari lug'atlar bilan ishlash uchun maxsus qo'shimcha xususiyatlarga ega. Xususan, csv.DictWriter() funktsiyasi faylga yozish imkonini beruvchi writer obyektni qaytaradi va csv.DictReader() funktsiyasi esa fayldan o'qish uchun reader obyektini qaytaradi. Masalan:
1
2
3 4
5
6
7
8
9
10
11
12
13
14
15
16 17
18
19
20
21
22
23
24
25
26
|
import csv
FILENAME = "users.csv"
users = [
{"ism": "Ali", "yosh": 25},
{"ism": "Sobir", "yosh": 32},
{"ism": "Dilnoza", "yosh": 14}
] with open(FILENAME, "w", newline="") as fayl:
ustunlar = ["ism", "yosh"]
writer = csv.DictWriter(fayl, fieldnames=ustunlar) writer.writeheader()
# bir qancha qatorlarni yozish writer.writerows(users)
user = {"ism": "Shaxnoza", "yosh": 18}
# bitta qatorni yozish writer.writerow(user)
with open(FILENAME, "r", newline="") as fayl:
reader = csv.DictReader(fayl) for row in reader:
print(row["ism"], "-", row["yosh"])
|
Qatorlarni writerow() va writerows() metodlari yordamida ham yozish mumkin. Ammo endi har bir satr alohida lug'at, hamda, ustun sarlavhalari writeheader() metodidan foydalanib yoziladi va ikkinchi parametr sifatida csv.DictWriter metodiga ustunlar to„plami uzatiladi.
Ustunlardan foydalangan holda satrdan berilganlarni o‟qishda satr ichidagi alohida qiymatlarga row["ism"] ko„rinishida murojaat qilishimiz mumkin.
3.4. Binar fayllar
Binar fayllarda, matnli fayllardan farqli o'laroq, ma'lumotlar baytlar majmui sifatida saqlanadi. Pythonda ular bilan ishlash uchun pickle – ichki modul kerak bo‟ladi. Ushbu modul ikkita metodni taqdim etadi:
dump(obj, file) - obyektni ikkilik faylga yozadi;
load(file) - binar fayldan obyektga ma'lumotlarni o'qiydi.
O'qish yoki yozish uchun binar faylni ochishda yozishni ("w") yoki o'qish ("r") rejimidan tashqari "b" rejimidan foydalanish kerakligini ham hisobga olish kerak. Masalan, ikkita obyektni saqlash kerak bo„lsin:
1
2
3 4
5
6
7
8
9
10
11
12
13
14
15
|
import pickle
FILENAME = "user.dat" ism = "ali" yosh = 25 with open(FILENAME, "wb") as file:
pickle.dump(ism, file) pickle.dump(yosh, file)
|
Do'stlaringiz bilan baham: |