ГЛАВА 2, 3, 4, 5. 2 тарау. Python Негіздері Бадарламаларды жазуа кіріспе
Скачать 242.51 Kb.
|
CSV файлдары Ақпаратты ыңғайлы түрде сақтайтын кең таралған файл форматтарының бірі-csv пішімі. Csv файлындағы әр жол үтірмен бөлінген жеке бағандардан тұратын жеке жазбаны немесе жолды білдіреді. Сондықтан формат Comma Separated Values деп аталады. Бірақ csv пішімі мәтіндік файл пішімі болғанымен, Python онымен жұмыс істеуді жеңілдету үшін арнайы орнатылған csv модулін ұсынады. Мысал арқылы модульдің жұмысын қарастырыңыз:
Файлға екі өлшемді тізім жазылады - іс жүзінде әр жол бір пайдаланушыны білдіретін кесте. Әр пайдаланушының екі өрісі бар - аты мен жасы. Яғни, іс жүзінде үш жол мен екі бағаннан тұратын кесте. Жазу үшін файлды ашқан кезде үшінші параметр ретінде newline="" мәні көрсетіледі - бос жол амалдық жүйеге қарамастан файлдан жолдарды дұрыс оқуға мүмкіндік береді. Жазу үшін csv функциясымен қайтарылатын writer нысанын алу керек.writer(file). Бұл функцияға ашық файл жіберіледі. Ал жазбаның өзі writer әдісін қолдану арқылы жасалады.writerows (пайдаланушылар) бұл әдіс жолдар жиынтығын қабылдайды. Біздің жағдайда бұл екі өлшемді тізім. Егер бір өлшемді тізім болып табылатын бір жазбаны қосу қажет болса, мысалы ["Sam", 31], онда бұл жағдайда writer әдісін шақыруға болады.writerow(user) Нәтижесінде, сценарийді орындағаннан кейін, сол қалтада users файлы болады.келесі мазмұны бар csv:
Файлдан оқу үшін, керісінше, reader нысанын жасау керек:
Reader нысанын алған кезде циклде оның барлық жолдарын сұрыптай аламыз: Tom - 28 Alice - 23 Bob - 34 Sam - 31 Сөздіктермен жұмыс Жоғарыдағы мысалда әр жазба немесе жол бөлек тізім болды, мысалы ["Sam", 31]. Сонымен қатар, csv модулінде сөздіктермен жұмыс істеу үшін арнайы қосымша мүмкіндіктер бар. Атап айтқанда, csv функциясы.DictWriter () файлға жазуға мүмкіндік беретін writer нысанын қайтарады. Ал csv функциясы.DictReader () reader нысанын Файлдан оқу үшін қайтарады. Мысалы:
Жолдарды жазу writerow() және writerows () әдістері арқылы да жасалады. Бірақ қазір әр жол Жеке сөздік болып табылады, сонымен қатар writeheader () әдісін қолдана отырып баған тақырыптары жазылады және csv әдісіне енеді.DictWriter екінші параметр ретінде бағандар жиынтығы беріледі. Жол атауларын пайдаланып жолдарды оқығанда, жол ішіндегі жеке мәндерге жүгінуге болады: row ["name"]. Екілік файлдар Екілік файлдар мәтіндік файлдарға қарағанда ақпаратты байттар жиынтығы түрінде сақтайды. Олармен жұмыс істеу үшін Python - да кірістірілген Pickle модулі қажет. Бұл модуль екі әдісті ұсынады: dump (obj, file): obj нысанын екілік файлға жазады load (file): екілік файлдан объектіге деректерді оқиды Оқу немесе жазу үшін екілік файлды ашқан кезде жазу ("w") немесе оқу ("r") режиміне қосымша"b"режимін қолдану керек екенін ескеру қажет. Екі нысанды сақтау керек делік:
Dump функциясын қолдана отырып, екі нысан дәйекті түрде жазылады. Сондықтан, файлды жүктеу функциясы арқылы дәйекті түрде оқығанда, біз бұл нысандарды санауға болады. Бағдарламаны консольдік шығару: Имя: Tom Возраст: 28 Сол сияқты, біз файлдан объектілер жиынтығын сақтай және алып тастай аламыз:
Dump функциясымен қандай нысанды жазғанымызға байланысты, файлды оқу кезінде сол нысанды load функциясы қайтарады. Консольді шығару: Имя: Tom Возраст: 28 Женат(замужем): True Имя: Alice Возраст: 23 Женат(замужем): False Имя: Bob Возраст: 34 Женат(замужем): False Shelve модулі Python - да екілік файлдармен жұмыс істеу үшін тағы бір модульді қолдануға болады-shelve. Ол нысандарды белгілі бір кілті бар файлға сақтайды. Содан кейін, осы кілт арқылы файлдан бұрын сақталған нысанды шығара алады. Shelve модулі арқылы деректермен жұмыс істеу процесі объектілерді сақтау және алу үшін кілттерді пайдаланатын сөздіктермен жұмыс істеуге ұқсайды. Файлды ашу үшін shelve модулі open() функциясын қолданады:
Flag параметрі мәндерді қабылдай алатын жерде: c: файл оқу және жазу үшін ашылады (әдепкі). Егер файл болмаса, ол жасалады. r: файл тек оқу үшін ашылады. w: файл жазу үшін ашылады. n: файл жазу үшін ашылады егер файл болмаса, ол жасалады. Егер ол бар болса, онда ол қайта жазылады Файл қосылымын жабу үшін close() әдісі шақырылады:
Немесе файлды with операторының көмегімен аша аласыз. Біз бірнеше нысанды сақтаймыз және файлға санаймыз:
Кілт ретінде жол мәндері қолданылады. Деректерді оқу кезінде, егер сұралған кілт болмаса, онда ерекшелік жасалады. Бұл жағдайда, қабылдамас бұрын, in операторының көмегімен кілттің бар-жоғын тексере аламыз:
Сондай-ақ, get () әдісін қолдана аламыз. Бірінші әдіс параметрі-мән алынатын кілт, ал екіншісі-кілт табылмаса қайтарылатын әдепкі мән.
For циклын қолдана отырып, файлдан барлық мәндерді сұрыптауға болады:
Keys () әдісі барлық кілттерді файлдан қайтарады, ал values () әдісі барлық мәндерді береді:
Тағы бір items () әдісі түйіндер жиынтығын қайтарады. Әр түйіспеде кілт пен мән бар.
Консольді шығару: ("London", "Great Britain") ("Paris", "France") ("Berlin", "Germany") ("Madrid", "Spain") Деректерді жаңарту Деректерді өзгерту үшін кілтке жаңа мән беру жеткілікті, ал деректерді қосу үшін жаңа кілтті анықтау жеткілікті:
Деректерді жою Бір уақытта алу арқылы жою үшін, егер кілт табылмаса, элемент кілті мен әдепкі мәні берілетін pop () функциясын пайдалануға болады:
Сондай-ақ, жою үшін del мәлімдемесін қолдануға болады:
Барлық элементтерді жою үшін clear() әдісін қолдануға болады:
OS модулі және файлдық жүйемен жұмыс Каталогтар мен файлдармен жұмыс істеудің бірқатар мүмкіндіктері кіріктірілген os модулін ұсынады. Ол көптеген функцияларды қарастырайық тек негізгілері: mkdir (): жаңа қалта жасайды rmdir (): қалтаны жояды rename (): файлдың атын өзгертеді remove (): файлды жояды Қалтаны жасау және жою Қалтаны жасау үшін mkdir () функциясы қолданылады, оған жасалатын қалтаға жол беріледі:
Қалтаны жою үшін rmdir () функциясы пайдаланылады, оған жойылатын қалтаға жол беріледі:
Файлдың атын өзгерту Атын өзгерту үшін rename(source, target) функциясы шақырылады, оның бірінші параметрі бастапқы файлға апаратын жол, екіншісі - жаңа Файл атауы. Жолдар ретінде абсолютті де, салыстырмалы да қолдануға болады. Мысалы, қалтада болсын C://SomeDir / somefile файлы орналасқан.txt. Файлдың атын "hello.txt" деп өзгертеміз:
Файлды жою Жою үшін файл жолы жіберілетін remove () функциясы шақырылады:
|