Կարող եք ձեր կոդը փորձարկել այստեղ
Տեքստային ֆայլում գրելը
Գրելու համար տեքստային ֆայլ բացելու համար դուք պետք է օգտագործեք w (վերագրանցում), a (լրացուցիչ) կամ r+ / w+ (կարդալ և գրել) ռեժիմը: Այնուհետև գրելու համար օգտագործվում է write(str) մեթոդը , որը փոխանցվում է գրվող տողը։ Հարկ է նշել, որ հենց տողը գրված է, հետևաբար, եթե անհրաժեշտ է գրել թվեր կամ այլ տեսակի տվյալներ, ապա դրանք նախ պետք է վերածել տողի։
Եկեք որոշ տեղեկություններ գրենք «hello.txt» ֆայլում.
with open("hello.txt", "w") as file:
file.write("hello world")
print("Ֆայլը գրված է")
Եթե մենք բացենք թղթապանակը, որտեղ գտնվում է ընթացիկ Python սկրիպտը, այնտեղ կտեսնենք «hello.txt» ֆայլը: Այս ֆայլը կարող է բացվել ցանկացած տեքստային խմբագրիչով և ցանկության դեպքում փոփոխվել: Հիմա այս ֆայլին ավելացնենք ևս մեկ տող.
with open("hello.txt", "a") as file:
file.write("\nhello work")
print("Ֆայլը փոփոխված է")
Հավելումը նման է ֆայլի վերջին նիշին տող ավելացնելու, այնպես որ, եթե ձեզ անհրաժեշտ է գրել նոր տողից, կարող եք օգտագործել «\n» փախուստի հաջորդականությունը: Արդյունքում, hello.txt ֆայլը կունենա հետևյալ բովանդակությունը.
hello world hello work
Տողերի ցուցակ գրելու համար կա writelines() մեթոդ : Որպես պարամետր այն վերցնում է տողերի ցանկը.
lines = ["Hello Word\n", "Hello Work\n", "Hello World\n"]
with open("hello2.txt", "a") as file:
file.writelines(lines)
print("Ֆայլում գրված տողերի ցանկ")
Արժե հաշվի առնել, որ եթե ցանկանում ենք, որ ցանկից յուրաքանչյուր տող տեղադրվի ֆայլի առանձին տողում, ապա ցուցակի տողը պետք է ավարտվի «\n» գրանշանով։
Ֆայլի վրա գրելու մեկ այլ եղանակ է ստանդարտ print() մեթոդը , որն օգտագործվում է տվյալների կոնսոլին դուրս բերելու համար.
with open("hello.txt", "a") as myfile:
print("\nhello metanit.com", file=myfile)
Տվյալները ֆայլ դուրս բերելու համար ֆայլի անունը փոխանցվում է տպման մեթոդին որպես երկրորդ պարամետր ֆայլի պարամետրի միջոցով: Իսկ առաջին պարամետրը ներկայացնում է ֆայլում գրվող տողը:
Ֆայլի ընթերցում
Ֆայլը կարդալու համար այն բացվում է r (Կարդալ) ռեժիմով, այնուհետև մենք կարող ենք կարդալ դրա բովանդակությունը՝ օգտագործելով տարբեր մեթոդներ. readline() : կարդում է մեկ տող ֆայլից read() : կարդում է ֆայլի ամբողջ բովանդակությունը մեկ տողի մեջ readlines() : կարդում է ֆայլի բոլոր տողերը ցուցակի մեջ Օրինակ, տող առ տող դիտարկեք վերը նշված գրանցված ֆայլը.
with open("hello.txt", "r") as file:
for line in file:
print(line)
Չնայած մենք հստակորեն չենք օգտագործում մեթոդ readline()յուրաքանչյուր տող կարդալու համար, երբ մենք կրկնում ենք ֆայլի միջոցով, այս մեթոդը ավտոմատ կերպով կանչվում է յուրաքանչյուր նոր տող ստանալու համար: Հետևաբար, իմաստ չունի ձեռքով զանգել ընթերցման գիծ մեթոդը օղակում:
Այնուամենայնիվ, քանի որ տպման ֆունկցիան անուղղակիորեն ավելացնում է նոր տող «\n» յուրաքանչյուր տողին, և գրված ֆայլի տողերը նույնպես առանձնացված են «\n» նոր տողով, յուրաքանչյուր տող ավարտվում է կրկնակի «\n»-ով։ և այլ տողում անհարկի փաթաթումից խուսափելու համար կարող եք արժեքը փոխանցել տպման ֆունկցիային end="":
with open("hello.txt", "r") as file:
for line in file:
print(line, end="")
Այժմ եկեք հստակորեն կոչենք readline() առանձին տողեր կարդալու մեթոդը.
with open("hello.txt", "r") as file:
str1 = file.readline()
print(str1, end="")
str2 = file.readline()
print(str2)
Readline մեթոդը կարող է օգտագործվել ֆայլը տող առ տող կարդալու համար որոշ ժամանակով հանգույցով.
with open("hello.txt", "r") as file:
line = file.readline()
while line:
print(line, end="")
line = file.readline()
Եթե ֆայլը փոքր է, ապա այն կարելի է միանգամից կարդալ՝ օգտագործելով read() մեթոդը.
with open("hello.txt", "r") as file:
content = file.read()
print(content)
Եվ նաև օգտագործեք readlines() մեթոդը ՝ ամբողջ ֆայլը տողերի ցանկում կարդալու համար.
with open("hello.txt", "r") as file:
contents = file.readlines()
str1 = contents[0]
str2 = contents[1]
print(str1, end="")
print(str2)
Ֆայլը կարդալիս մենք կարող ենք հանդիպել այն փաստի, որ դրա կոդավորումը չի համապատասխանում ASCII-ին: Այս դեպքում մենք կարող ենք բացահայտորեն նշել կոդավորումը՝ օգտագործելով կոդավորման պարամետրը.
filename = "hello.txt"
with open(filename, encoding="utf8") as file:
text = file.read()
Կարդալ եւ գրել Ֆայլը անմիջապես կարդալու և գրելու համար բացելու համար օգտագործվում են հետևյալ դրոշները. r+ . եթե ֆայլը չի գտնվել, բացառություն է բացվում FileNotFoundError w+ . Եթե ֆայլը գոյություն չունի, այն ինքնաբերաբար ստեղծվում է: Եթե ֆայլը գոյություն ունի, այն վերագրվում է Օրինակ, եկեք գրենք և կարդանք տվյալներ ֆայլից.
with open("hello.txt", "w+") as file:
file.write("Hello world\nHello work\n")
file.seek(0)
content = file.read()
print(content)
Տեղափոխում ֆայլի միջով Seek() մեթոդն օգտագործվում է ֆայլի բացումից հետո շարժվելու համար : Այն փոխանցվում է բայթի ինդեքսը, որտեղ պետք է տեղափոխվի ֆայլի ցուցիչը: Օրինակ, վերը նշված օրինակում գրելուց հետո ֆայլի ցուցիչը ավտոմատ կերպով դրվում է ֆայլի վերջում: Իսկ տվյալները կարդացվում են այն դիրքից, որտեղ գտնվում է ցուցիչը։ Իսկ այն հենց սկզբին տեղափոխելու համար օգտագործվում է զանգը
file.seek(0)
Նմանապես, մենք կարող ենք ֆայլի միջով տեղափոխել ցանկալի դիրք: Օրինակ՝ մենք հաշվում ենք տվյալները՝ սկսած 5-րդ նիշից.
with open("hello.txt", "w+") as file:
file.write("Hello world\n")
file.seek(6)
content = file.read()
print(content) # world
Ֆայլերի հետ աշխատելու օրինակ Հիմա եկեք գրենք մի փոքրիկ սկրիպտ, որը կգրի օգտագործողի մուտքագրած տողերի զանգված և կկարդա այն ֆայլից դեպի վահանակ.
FILENAME = "messages.txt"
def write():
message = input("Введите строку: ")
with open(FILENAME, "a") as file:
file.write(message + "\n")
def read():
with open(FILENAME, "r") as file:
for message in file:
print(message, end="")
print()
while(True):
selection = int(input("1.Write file\t\t2.Read file\t\t3.Exit\nChoose action: "))
match selection:
case 1: write()
case 2: read()
case 3: break
case _: print("Wrong enter")
print("Program ended")
Մեկնաբանություն գրելու համար խնդրում ենք մուտք լինել