4.2 Файлдық функциялармен жұмыс

Python программалау тіліндегі файлмен жұмыс істейтін қандай функция мен әдістер бар?

Жаңа білім

   Ойлан

  • Файлдармен жұмыс істейтін қандай функция мен әдістерді білесің?
  • Файлға деректерді жазу мен оқуда қандай жайттарға ерекше назар аудару керек?

 Біз өткен тақырыпта мәтіндік файлдармен жұмыс істеу жолдарын қарастырдық. Файлдарды ашу, оқу, жазу мен қосып жазу сияқты амалдарды орындауды үйрендік. Python да бинарлық файлдармен жұмыс істеу үшін open () функциясының режімдеріне 'b' (бинарлық) символын қосып пайдаланады. Мысалы, бинарлық файлды оқу үшін мәтіндік файлды ашудағы 'r' режімін 'rb'-ға ауыстырады. Біз әзірге тек мәтіндік файлдармен жұмыс істеу жолдарын меңгереміз. Бинарлық файлдармен жұмыс істеуді жоғары сыныптарда қарастырамыз. Енді файлдармен жұмыс істеуге көмектесетін функциялардың қолданылуына кеңірек тоқталайық.

Readline () функциясы

Readline () файлдағы жолдарды жеке-жеке оқу үшін қолданылады. Функция параметрсіз қолданылғанда бір жолды тұтас оқиды. Функцияны параметрмен қолданғанда жақшаның ішіне жолдың неше таңбасын оқу керектігін көрсету керек. Мысалы, readline(10) жолдағы алғашқы 10 символды оқиды.

1-тапсырма

Input.txt мәтіндік файлдың бірінші жолында “a”..“z” арасындағы кіші латын әріптері, ал екінші жолға 0 мен 9 арасындағы араб цифрлары берілген. Бірінші жолдағы алғашқы 10 әріп пен екінші жолдағы алғашқы 5 цифрды Output.txt файлына жаз.

Input.txt

Output.txt

abcdefghijklmnopqrstuvwxyz

0123456789

abcdefghij

01234

Кіру файлын жасау үшін өткен тақырыпта танысқан мәтіндік файл жасаудың 1-әдісі қолданылады. 1-тапсырманы орындаудың өзіндік ерекшеліктері бар. Программа кодынан көріп тұрғандай бірінші қатардағы алғашқы 10 символды оқу үшін readline (10) деп, нәтижесі p айнымалысына жүктеледі (1-сурет). Ал екінші қатардағы алғашқы 5 цифрды оқу үшін бірінші қатардағы алфавиттің қалған бөлігін параметрсіз readline() арқылы оқып, төменгі қатарға түсу керек. Кейінгі қадамда readline (5) командасы арқылы екінші қатарды оқуға болады. Файлдан оқыған деректерді жеке-жеке жолға жазу үшін ‘\n’ әдісін қолдану керек. Программа іске қосылғанда 2-суреттегі Output.txt мәтіндік файлы пайда болады (2-сурет).

Seek функциясы

Үнсіз келісім бойынша read () әдісі файлды басынан соңына дейін ретімен оқиды. Файлдағы деректерге еркін қол жеткізу үшін seek (іздеу) функциясы қолданылады.

Seek (n) – функцияның қызметі, файлдағы меңзерді көрсетілген орыннан (n-позициядан) бастап қояды. Яғни, файлдан оқу немесе оған жазу үшін меңзерді тиісті орынға қоюға көмектеседі.

2-тапсырма

Input.txt мәтіндік файлдың бірінші жолында “a”..“z” аралығындағы кіші латын әріптерінен тұратын жол берілген. Файлдағы осы жолдың 2-орнынан бастап 15 әріпті ‘*’ символымен ауыстыр.

Input.txt

Input.txt

abcdefghijklmnopqrstuvwxyz

ab***************rstuvwxyz

Тапсырманы орындау үшін Input.txt кіру файлына латын әріптерін жазу керек. Келесі қадамда файл меңзерін Seek () функциясы көмегімен қажетті орынға орналастырамыз. Файлға ‘*’ символын жазу барысында бұрынғы символдар өшіп, жаңасы өшкен символдың үстіне жазылады. Программа коды 3-суретте, программа нәтижесі 4-суретте берілген.

Практикалық жұмыс

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

Input. txt

Input. txt

abcdefghijklmnopqrstuvwxyz

ab***************rstuvwxyz

Практикалық жұмыста кіру файлында берілген үш санның неше таңбадан тұратыны нақты көрсетілген. Сол үшін тапсырманы орындауда seek () пен read () функцияларын қолданамыз. Практикалық жұмыстың кодын (5-сурет) жазу негізінен төменгі қадамдардан тұрады:

1. seek (n) функциясының көмегімен меңзерді қажетті орындарға қойып отырамыз.

2. read (n) функциясының көмегімен жолдық шамаларды таңбасының санына қарай оқимыз.

3. Жолдық шамаларды int () функциясы көмегімен санға айналдырамыз. Нәтиже жазылған шығу файлы 6-суретте берілген.

5-сурет. Практикалық  тапсырманың коды
6-сурет. Шығу файлы

Тапсырма

  • seek (3); read (5)
  • seek (5); read ()
  • seek (0); read (1)

Input. txt

Output.txt

Түсініктеме

25   18   45   12   9

42

25+18 = 43; 43/9 = 4 (7)

45-12 = 33; 33/9 = 3 (6)

Sum.txt

Result.txt

12.74 15.68 98.18 32.84

159

a.txt

Экранға шығару

1456 + 78544

80000

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

Досыма хат. Файлдан оқу тақырыбы жайлы досыңа хат жаз. Хат мазмұнында файлдан оқудың ерекшеліктері мен оның программалау үшін маңызын әңгімелеп бер. Хаттың мазмұнында осы тақырыпты меңгерудегі қиыншылықтарың жайлы ойыңды жаз. Сонымен бірге бұл тақырыпты ойдағыдай меңгерген жағдайда программа құруда жаңа қандай мүмкіндіктерге қол жеткізетінің туралы сөз қозға.

Практикалық тапсырмалар

  • Readline ()
  • Seek (n)
  • файлдағы жолдарды жеке-жеке оқу үшін қолданылады.
  • бұл функцияның қызметі, файлдағы меңзерді көрсетілген орыннан (n-позициядан) бастап қояды.
  • ‘ajsjsidmdmdmd’
  • ‘ajsjsidmmkkkddmdmd’
  • ‘ajsjs’
  • ‘amd’
  • ‘amdmd’
Өтінемін күте тұрыңыз