4.1 Файлдармен жұмыс

Python программалау тіліндегі деректерді файлдан қалай оқимыз және қалай жазамыз?

Жаңа білім

-1-

Кез келген программалау тілінде құрастырылған программа маңызды «үш тіректен» тұрады. Бұл тіректерге деректерді енгізу, өңдеу және нәтижені шығару жатады. 6-сыныпта деректерді программаға енгізуді пернетақта арқылы орындадық. Ал программаның өңдеген нәтижесін компьютер экранына шығардық. Көп жағдайда деректерді программаға пернетақта арқылы енгізу тиімсіз болып саналады. Мысалы, өзіміз тұратын қала (ауыл) тұрғындарының абоненттің аты-жөні мен телефон нөмірлері жазылған электрондық «телефон анықтамалығын» жасауды жоспарладық делік. Мұндай телефон анықтамалығындағы жазбалар кем дегенде 500 телефон нөмірінен тұрады. Міне, осындай жағдайда абоненттің аты-жөні мен оның телефон нөмірін мәтіндік файлға сақтап алған дұрыс. Ал құрастырған программамыздың көмегімен кез келген уақытта осы файлды ашып, қажетті абоненттің телефонын жылдам таба аламыз.

-2-

Python-да жасалған программа көмегімен файлдағы деректерді оқуға, оны өңдеп экранға немесе басқа файлға жазуға болады. Бұл тілдің негізгі функциялары файлдардан деректерді оқуды, жазуды жеңілдетеді. Енді осы файлды өңдеу функцияларымен танысайық.

Файл – деректерді тұрақты жадта (мысалы, қатқыл дискіде) ұзақ уақыт сақтауға арналған дискінің атау берілген аймағы.

Файлды оқу немесе оған мәлімет енгізу үшін алдымен оны ашу керек. Жұмыс аяқталған соң файлға қатысты ресурстарды босату үшін оны жабамыз.

-3-

Python-да файлдармен жүргізілетін амалдар төмендегідей ретпен 
орындалады:

1. Файлды ашу.

2. Оқу немесе жазу.

3. Файлды жабу.

Python-да файлдардың екі типін қарастыруға болады.

1. Белгісіз ұзындықтағы мәтіндік файлдар. Бұл файлдарда мәтіндер сақталады.

2. Екілік (бинарлық) файлдар. Бұл типтегі файлдарда суреттер, дыбыстар, бейнелердің (видео) екілік кодтары сақталады.

   Ойлан

  • Python-да программалау кезінде деректерді қалай енгіздің? Есіңе түсір.
  • Программаны орындау кезінде айнымалылардың мәндерін енгізудің тағы қандай әдістерін білесің?
  • Программаның деректерді файлдан оқу арқылы өңдеуінің қандай тиімді жақтары бар?

Файлды жасау мен ашу

Python-да файл жасауды қарастырайық. Мысалы, мәтіндік файл жасау керек болса, онда оны екі түрлі жолмен жасайды:

1. Төменгі сыныптарда үйренген әдіспен (тінтуірдің көмегімен контекстік мәзір арқылы... Python орналасқан бумаға *.txt типіндегі файлды жасайды.

2. Python-дағы open () функциясының көмегімен автоматты түрде жасауға болады. Ол үшін open () функциясында файлдың атауы мен файлды өңдеу параметрін көрсету керек.

Төмендегі программа кодында file айнымалысы жаңа мәтіндік файлға сілтеме жасалғанын көрсетіп тұр. Программаны іске қосқанда осы программа сақталған бумада test.txt мәтіндік файлы пайда болады.

file = open ("test.txt", "w")

file.close ()

Егер, test.txt файлы бумада алдын ала жасалған болса, онда программа жаңа файл жасамайды, бұрынғы жасалғанымен жұмыс істей береді. Open () функциясының екі маңызды параметрі бар. Оларға файл атауы мен функцияның жұмыс режімі кіреді (1-кесте).

1-кесте. Open () функциясының жұмыс режімі

Режім түрі

Қызметі

'r'

Файлды мәтіндік режімде ашады (үнсіз келісім бойынша).

'w'

Жаңа файл жасап, оған деректі жазады. Егер мұндай файл бұрын жасалған болса, оған жаңа дерек жазу үшін ескісі өшіріледі.

'a'

Алдын ала жасалған файлды ашып, ондағы жазбалардың соңына жаңа деректерді қосып жазады.

'b'

Файлды екілік (бинарлық) режімде ашады.

't'

Файлды мәтіндік режімде ашады (үнсіз келісім бойынша).

'+'

Файлды оқу мен жазу үшін ашады.

Программа көмегімен мәтіндік файлдан деректі оқып, оны өңдеп, нәтижесін шығыс файлына жазуды түсіну үшін төменде берілген тапсырманы шешу жолымен танысайық.

Input.txt мәтіндік файлында аралары бос орынмен ажыратылған а және b бүтін сандар берілген. Осы сандардың қосындысы мен көбейтіндісін тап. Нәтижені оutput.txt файлына жаз.

Input.txt

Output.txt

12   15

27   180

Бұл тапсырманы орындау үшін файл жасаудың 2- әдісімен іnput. txt атауымен кіру файлын жасаймыз. Оған write () әдісімен 12 мен 15 сандарын жазамыз (программа коды 1-сурет және жаңадан жасалған кіру файлы 2-сурет). Егер программа соңында close() командасын жазбасақ, онда файлға жазылған деректер сақталмайды.

Келесі қадамда Input.txt файлынан екі санды оқып, оларға тапсырмада айтылған амалдарды орындап, Output.txt шығу файлына жазамыз. Кіру файлынан бос орынмен ажыратылған екі қатар тұрған сандарды оқу үшін төменгі сыныпта танысқан map () функциясы мен split () әдісін қолданамыз (3-сурет).

Деректерді файлдан оқыту үшін read() әдісін пайдаланамыз. Read () пен write () командалары жолдық командаларға жатады. Сол үшін қосынды мен көбейтіндінің мәндерін str әдісі арқылы жолдық шамаға айналдырып файлға жазамыз. Нәтижелерді жекежеке қатарға жазу үшін '\n' әдісін қолданамыз.

   Сұрақтар

Жинақтау

Файлға жазу мен оқу әдістерін пайдаланып, қарапайым бір тапсырманың мәтінін құрап ұсын. Тапсырма құрастыруда 1-кестедегі open () функциясының жұмыс режімдерін пайдалан.

Талдау

Тапсырманың программа кодтарына талдау жаса. Төмендегі сұрақтарға жауап ізде.

1. 1-суреттегі кіру файлын жасау кодымен тапсырманың толық кодын бір программа кодына біріктіруге бола ма?

2. 3-суреттегі программа кодынан close () командаларын алып тастап орындасақ қандай нәтиже аламыз?

3. Программа кодында write () әдісінің орнына print () функциясын қолдануға бола ма?

Бағалау

Программалау барысында деректерді файлдан оқудың қандай маңызы бар? Баға бер.

Сұрақтар

1. write () пен print () командаларын қолдануда қандай айырмашылық бар?

2. read () пен Input () командаларын қолдануда қандай айырмашылық бар?

3. Файлды жазу үшін ашқанда міндетті түрде close () командасын қоюдың себебі неде?

4. Деректерді пернетақта арқылы енгізу мен файлдан енгізуді программалық тұрғыдан орындауда қандай айырмашылық бар?

Үй тапсырмасы

Төменде берілген программа коды орындалғанда шығу файлына қандай нәтиже жазылады? Программа кодына талдау жүргізіп, нәтижесіне түсініктеме жаз.

5-сурет. Шығу файлы

Input.txt

Output.txt

10    20    30

20

a.txt

b.txt

15268    14785

40

b.txt

b.txt

40

40

60

  • Файлды ашу.
  • Файлды жабу.
  • Оқу немесе жазу.

Файлды жазу үшін ашқанда міндетті түрде close () командасын қоюдың себебі неде?

 – деректерді  жадта (мысалы, қатқыл дискіде)  уақыт сақтауға арналған  атау  аймағы.

Өтінемін күте тұрыңыз