Կարող եք ձեր կոդը փորձարկել այստեղ
Ֆայլի սովորական ձևաչափերից մեկը, որը տեղեկատվություն է պահում հարմար ձևով, csv ձևաչափն է : csv ֆայլի յուրաքանչյուր տող ներկայացնում է առանձին գրառում կամ տող, որը բաղկացած է ստորակետերով բաժանված առանձին սյունակներից։ Սա է իրականում պատճառը, որ ձևաչափը կոչվում է ստորակետերով բաժանված արժեքներ: Բայց չնայած csv ձևաչափը տեքստային ֆայլի ձևաչափ է, Python-ը տրամադրում է հատուկ ներկառուցված csv մոդուլ՝ հեշտացնելու հետ աշխատելը:
Եկեք նայենք մոդուլի աշխատանքին՝ օգտագործելով օրինակ.
import csv
FILENAME = "users.csv"
users = [
["Tom", 28],
["Alice", 23],
["Bob", 34]
]
with open(FILENAME, "w", newline="") as file:
writer = csv.writer(file)
writer.writerows(users)
with open(FILENAME, "a", newline="") as file:
user = ["Sam", 31]
writer = csv.writer(file)
writer.writerow(user)
Ֆայլի վրա գրված է երկչափ ցուցակ՝ ըստ էության, աղյուսակ, որտեղ յուրաքանչյուր տող ներկայացնում է մեկ օգտվող: Եվ յուրաքանչյուր օգտվող պարունակում է երկու դաշտ՝ անուն և տարիք: Այսինքն, ըստ էության, երեք տողերի և երկու սյունակների աղյուսակ է: Գրելու համար ֆայլ բացելիս արժեքը նշվում է որպես երրորդ պարամետր newline=""՝ դատարկ տողը թույլ է տալիս ճիշտ կարդալ տողերը ֆայլից՝ անկախ օպերացիոն համակարգից: Գրելու համար մենք պետք է ստանանք writer օբյեկտը , որը վերադարձվում է ֆունկցիայի կողմից csv.writer(file): Բաց ֆայլ փոխանցվում է այս ֆունկցիային: Իսկ իրական ձայնագրությունը կատարվում է մեթոդի միջոցով: writer.writerows(users)Այս մեթոդը ընդունում է տողերի մի շարք: Մեր դեպքում սա երկչափ ցուցակ է։ Եթե Ձեզ անհրաժեշտ է ավելացնել մեկ մուտք, որը, օրինակ, միաչափ ցուցակ է, ["Sam", 31]ապա այս դեպքում կարող եք զանգահարել writer.writerow(user) մեթոդը: Արդյունքում սկրիպտը կատարելուց հետո users.csv ֆայլը կհայտնվի նույն թղթապանակում, որը կունենա հետևյալ բովանդակությունը.
Tom,28 Alice,23 Bob,34 Sam,31
Ֆայլից կարդալու համար, ընդհակառակը, մենք պետք է ստեղծենք ընթերցող օբյեկտ.
import csv
FILENAME = "users.csv"
with open(FILENAME, "r", newline="") as file:
reader = csv.reader(file)
for row in reader:
print(row[0], " - ", row[1])
Երբ մենք ստանում ենք ընթերցող օբյեկտ, մենք կարող ենք շրջել նրա բոլոր տողերով.
Tom - 28 Alice - 23 Bob - 34 Sam - 31
Աշխատեք բառարանների հետ
Վերևի օրինակում յուրաքանչյուր մուտք կամ տող առանձին ցուցակ էր, օրինակ՝ ["Sam", 31]. Բայց բացի այդ, csv մոդուլն ունի բառարանների հետ աշխատելու հատուկ լրացուցիչ հնարավորություններ։ Մասնավորապես, csv.DictWriter() ֆունկցիան վերադարձնում է գրող օբյեկտ, որը թույլ է տալիս գրել ֆայլ: Իսկ csv.DictReader() ֆունկցիան վերադարձնում է ընթերցող օբյեկտ՝ ֆայլից կարդալու համար: Օրինակ:
import csv
FILENAME = "users2.csv"
users = [
{"name": "Tom", "age": 28},
{"name": "Alice", "age": 23},
{"name": "Bob", "age": 34}
]
with open(FILENAME, "w", newline="") as file:
columns = ["name", "age"]
writer = csv.DictWriter(file, fieldnames=columns)
writer.writeheader()
writer.writerows(users)
user = {"name" : "Sam", "age": 41}
writer.writerow(user)
with open(FILENAME, "r", newline="") as file:
reader = csv.DictReader(file)
for row in reader:
print(row["name"], "-", row["age"])
Տողերը գրվում են նաև writerow()և մեթոդների միջոցով writerows(): Բայց այժմ յուրաքանչյուր տող առանձին բառարան է, և բացի այդ, սյունակների վերնագրերը գրվում են writeheader() մեթոդով , և սյունակների մի շարք փոխանցվում է csv.DictWriter մեթոդին՝ որպես երկրորդ պարամետր։ Տողերը կարդալիս, օգտագործելով սյունակների անունները, մենք կարող ենք անդրադառնալ տողում գտնվող առանձին արժեքներին row["name"].
Մեկնաբանություն գրելու համար խնդրում ենք մուտք լինել