1-sahifa 2-sahifa


19.7. Faylga asoslangan dizayn


Download 363.98 Kb.
bet15/21
Sana06.06.2020
Hajmi363.98 Kb.
#115448
1   ...   11   12   13   14   15   16   17   18   ...   21
Bog'liq
Python


19.7. Faylga asoslangan dizayn

177

19.7. Faylga asoslangan dizayn

Siz allaqachon funktsiyalarni tartibga solish va tuzish uchun qanday foydalanishni ko'rgansiz-

murakkab dasturlar. Foydalanishning afzalliklaridan biri

funktsiyalari bu funktsiyalarni qayta ishlatish mumkinligi

kodda. Bu ishlaydigan xususiyatlarni tashkil qilish bo'yicha foydali maslahatlar.

fayllar bilan.

Aytaylik, fayl nomini oladigan kod yozmoqchisiz

va fayldan va har biridan oldin qatorlar ketma-ketligini yaratadi

chiziq uning raqamini kiritadi. Bir qarashda, ko'rinishi mumkin

O'zingizning API (Application Programming Interface)

funktsiyalari tarkibiga kerakli fayl nomini olish kerak

tahrirlash:

>>> def add_number (fayl nomi):

... natijalar = []

... ochiq (fayl nomi) fin sifatida:

...


raqam uchun, sonlar qatori (fin):

...


results.append (

... '{0} - {1}'. Formati (raqam, qator))

... natijalarni qaytaring

Ushbu kod juda yaxshi ishlaydi. Agar kerak bo'lsa, nima bo'ladi

fayldan emas, balki boshqa manbadan olingan satrlardan oldin raqamlarni kiriting

tochnik? Agar siz kodni sinab ko'rishingiz kerak bo'lsa, endi buni qilishingiz kerak

Fayl tizimiga ulaning. Bir yechim - bu funktsiyani qaytarish

faylni faqat kontekst menejerida ochishi uchun add_nearn ,

va keyin yana bir funktsiyani chaqirdi - add_nums_to_seq . Yangi xususiyat

bog'liq emas, ketma-ketlik bilan ishlaydigan mantiqni o'z ichiga oladi

fayl nomidan. Fayl ketma-ketliklar ketma-ketligi kabi ishlaydi,

asl funksionallik saqlanib qoladi:

>>> def add_number (fayl nomi):

... ochiq (fayl nomi) fin sifatida:

...

qaytish add_nums_to_seq (fin)



>>> def add_nums_to_seq (seq):

... natijalar = []

... raqami uchun raqamlar qatori (seq):

...


results.append (



178-sahifa

178

19-bob I / O-fayl

... '{0} - {1}'. Formati (raqam, qator))

... natijalarni qaytaring

Endi sizda yana qo'shimcha funktsiyalar mavjud add_nums_to_seq va boshqalar

sinov va qayta foydalanish uchun suruv, chunki buning o'rniga

Fayl nomiga qarab, bu ketma-ketlikka bog'liq. Siz

satrlar ro'yxatidan o'tishi yoki nosog'lom fayl yaratishi mumkin

funktsiyalari uzatiladi.

BOSHQA

Shunga o'xshash interfeysni amalga oshiradigan boshqa turlari ham mavjud

fayl interfeysi bilan (o'qish va yozish). Qachon bo'lganingizda

Dasturlash paytida fayl nomidan foydalanish uchun o'zingizdan so'rang

bu mantiqni boshqa ketma-ketliklarga qo'llash mumkinmi? Agar

iloji bo'lsa, yuqoridagi qayta ishlovchi misoldan foydalaning

kam foydalanish muammosini keltirib chiqaradigan kodni olish -

sinov va sinov.



19.8. Xulosa

Python o'zaro ishlash uchun bitta ochiq funktsiyani taqdim etadi

matnli va ikkilik fayllar bilan. Rejimni belgilab, siz

Python, fayl bilan qanday operatsiyalarni bajarish kerak - o'qish

yoki yozib oling. Matnli fayllar bilan ishlashda o'qish va yozish kerak

torlari. Ikkilik fayllar bilan ishlashda ular o'qiladi va yoziladi

bayt torlari.

Fayllarni yopishni unutmang. Idiomatik yopish

foydalanish bilan buyruq hisoblanadi . Va nihoyat, bunga ishonch hosil qiling

sizning funktsiyalaringiz o'rniga ma'lumotlar ketma-ketligi bilan ishlash mumkin

fayl nomlari, chunki bu sizning kodingizni yanada ko'p qirrali qiladi.

19.9. Mashqlar

1. Ajratilgan ma'lumotlar fayllarini yozish funktsiyasini yozing

beshinchi (CSV, vergul bilan ajratilgan qiymatlar). Funktsiya yarim bo'lishi kerak

parametrlarda fayl nomi va bog'lanishlar ro'yxati. Tuvaklar kerak

Bizda ism, manzil va yosh mavjud. Fayl chiziq yaratishi kerak



179-bet

19.9. Mashqlar

179

sarlavha va undan keyin har bir qator uchun qator. Agar

Quyidagi bog'lanishlar ro'yxati funktsiyaga o'tkaziladi:

[('Jorj', '4312 Abbey yo'li', 22),

('John', '54 Love Ave ', 21)]

Faylga quyidagi ma'lumotlar yozilishi kerak:

nomi, manzili, yoshi

Jorj, 4312 Abbey yo'li, 22

Jon, 54-sonli Sevgi prospekti, 21-uy

2. CSV fayllarini o'qish uchun funktsiyani yozing. U qaytishi kerak

birinchi qatorni nom sifatida talqin qilib, lug'atlar ro'yxatini tuzing

tugmachalari va har bir keyingi qatorda ushbu tugmachalarning qiymatlari sifatida.

Yuqoridagi misolda keltirilgan ma'lumotlar uchun quyidagilar qaytariladi

natija:


[{'name': 'George', 'address': '4312 Abbey Road', 'age': 22},

{'name': 'John', 'address': '54 Love Ave ',' age ': 21}]





180-bet

20 yagona kod

Ushbu kitobda chiziqlar allaqachon bir necha bor ko'rilgan, ammo biz hali ham yo'q

Python 3-ning eng katta o'zgarishlaridan biri - Uni torlarini muhokama qildi

kodi. Python 2-da Unicode satrlari qo'llab-quvvatlandi, ammo kerak edi

maxsus yaratilgan. Endi vaziyat o'zgargan, barcha qatorlar saqlangan

unikodda.



20.1. Tarix ma'lumotnomasi

Unicode nima? Bu gliflar uchun standart.

(yozuvlarning ko'pchiligiga kiritilgan belgilar, shuningdek belgilar

va kulgichlar). Standartning xususiyatlarini Unicode 1 veb-saytida topish mumkin ,

bundan tashqari, standart ko'pincha yangilanadi. Standart turli xillardan iborat

kod nuqtalarini bog'laydigan kumenty va diagrammalar (o'n oltilik

Giflar (H yoki ☺ ) va nomlar bilan 0048 yoki 1F600 kabi raqamlar

( LATIN KAPITALI H va GRINNING YO'Q ). Kod nuqtalari va nomlari noyob,

garchi ko'plab gliflar juda o'xshash bo'lsa-da.

Va endi ozgina tarixiy ma'lumot. Keng tarqalgan

turli xil kompyuterlar turli xil sxemalarni taklif qila boshladilar

Ikkilamchi ma'lumotlarni simli ma'lumotlarga xaritalash Ulardan biri

FIR kodlashlari - ASCII - 7 ko'rsatishda ma'lumotlar bitlaridan foydalanadi

128 belgilar va boshqarish belgilar. Ushbu kodlash normaldir

masalan, lotin alifbosiga yo'naltirilgan muhitda ishlaydi

1

https://unicode.org





181-sahifa

20.1. Tarix ma'lumotnomasi

181

o'lchovlar ingliz tilida. 128 xil gliflarga ega bo'lish ta'minlanadi

kichik harflar va bosh harflar uchun etarli joy

harf, raqamlar va tinish belgilari.

Vaqt o'tishi bilan ingliz tilidan tashqari boshqa tillarni qo'llab-quvvatlash yanada ko'paydi

keng tarqalgan va ASCII kodlash etarli emas edi. Oilalarda

Windows 98-dan oldin Windows Windows-1252 kodlashni qo'llab-quvvatlaydi

turli diakritik belgilar va belgilarni qo'llab-quvvatlash bilan (masalan.

Evro belgisi).

Ushbu kodlash sxemalarining barchasi birlamchi xaritalashni ta'minlaydi.

har bir belgi uchun bayt. Xitoy, koreys va yapon tillarini qo'llab-quvvatlash uchun

Yozish uchun 128 tadan ortiq belgi kerak bo'ladi. To'rt bayt

kodlash 4 milliarddan ortiq belgilarni qo'llab-quvvatlashga imkon beradi. Muallif:

Bundan tashqari, bunday universallik bejiz emas. Ko'pchilik uchun,

faqat ASCII belgilaridan foydalangan holda to'rtburchak

bir xil miqdordagi ma'lumotlar bilan xotira narxining oshishi ko'rinadi

yog'li xotira yo'qolishi.

Barcha belgilarni ortiqcha xarajatlarsiz qo'llab-quvvatlash

xotira, men murosaga kelishim kerak edi - kodlashni rad qilish

bitlarning belgilar ketma-ketligi. Buning o'rniga belgilar edi

mavhum. Har bir belgi noyob kod bilan taqqoslandi

element (o'n oltilik qiymati va noyob bilan)

ism). Keyin turli xil kodlashlar kodli nuqtalarni ko'rsatdi

bit kodlash. Unicode Sim-ga mos keladi

ho'kiz va kod nuqtasi, aniq bir vakillik emas. Turli xillarda

kontekstlarda muqobil vakillik ko'proq ma'lumot berishi mumkin

samarali ishlash.

Kodlashlardan biri bo'lgan UTF-32 ma'lumotni saqlash uchun 4 baytdan foydalanadi

Ramz haqidagi matsiyalar. Ushbu ko'rinish past darajadagi odamlar uchun qulay

Trivial indeksatsiya operatsiyalari tufayli dasturchilar.

Boshqa tomondan, ASCII-ga qaraganda to'rt barobar ko'proq xotira sarflaydi,

Lotin alifbosidagi bir qator harflarni kodlash uchun.

O'zgaruvchan kenglikdagi kodlash tushunchasi ham kurashishga yordam berdi

xotira bosh bilan. Ushbu kodlashlardan biri UTF-8 bo'lib, unda

Belgini ifodalash uchun 1 dan 4 baytgacha foydalanish. Undan tashqari

Bundan tashqari, UTF-8 orqaga qarab ASCII bilan mos keladi. UTF-8 - bu eng yaxshisi



182-sahifa

182

20-bob. Unicode

K a u a

Kulgichlar0 kulgichlar

TO

VA



G

Utf-8


TO

Yuzlar

Kulgilarga osonlikcha og'iz orqali buyuriladi.

kodlar jadvalidagi belgilarni qidirish.

1F60


0

1F61 1F62 1F63 1F64

YUQORI YOZ

'\ N {YUZ YUZISH}'

'\ U0001f600'

''

b '\ xf0 \ x9f \ x98 \ x80', dekodlash ('utf8')



1F600

1F600


1F610

1F620


1F630

1F640


1F601

1F602


→ 263A

1F603


Yuz bilan kulish

Ko'z yoshlariga

KULMOQ

a (a)


G

VA

TO



Anjir. 20.1. Unicode.org-da kod jadvallarini o'qish. Jadvallar keltirilgan

tegishli o'n oltilik kodeks nuqtalari bo'lgan gliflar. Buning uchun

keyin jadval kodi, glif va nomli boshqa jadval keltirilgan. Siz

glif, ism yoki kod nuqtasidan foydalanishi mumkin. Agar kod nuqtasi bo'lsa

4 ta raqamdan ko'p bo'lsa, U katta harfdan foydalaning va chapdagi kodni nol bilan kiriting

8 ta raqam. Agar raqamlar 4 yoki undan kam bo'lsa, u kichik harfdan foydalanish kerak

chap tomonda kodni nol bilan 4 raqamga qo'ying. Kodni ochish misoli ham keltirilgan.

Tegishli glifga UTF-8 baytli qator





183-bet

20.2. Python-dagi muhim bosqichlar

183

Internetda keng tarqalgan kodlash - kod uchun juda yaxshi

xarakteristikasi, chunki u ko'plab dasturlar tomonidan qo'llab-quvvatlanadi

va operatsion tizimlar.



MASLAHAT

Mashinangiz uchun afzal qilingan kodlashni bilish uchun quyidagilarni bajaring

quyidagi kod (mening 2015 Mac uchun natijam berilgan):

>>> import mahalliy

>>> lokal.getpreferredencoding (noto'g'ri)

'UTF-8'


Yana bir bor aniqlik kiritamiz: UTF-8 - bayt kodni bayt kodlash

kodi. UTF-8 va Unicode eng yaxshi deb ayt

noaniqlik va eng yomoni, kodni noto'g'ri tushunish

belgilar. Bundan tashqari, ismning o'zi "Unicode" so'zlaridan kelib chiqadi

Transformatsiya formati - 8 bit ", ya'ni" Uni-

kod 8 bitli, "bu Unicode formatidir.

Bir misolni ko'rib chiqaylik. SUPERSCRIPT IKKI deb nomlangan belgi aniqlandi

Unicode standartida U + 00b2 kod nuqtasi sifatida. Uning glifasi (bosilgan)

vakillik) ² shakliga ega. ASCIIda bu belgini namoyish etish mumkin emas.

lekin. Windows-1252-da bunday vakillik mavjud, belgi kodlangan



b2 bayt o'n oltilik belgi bilan belgilanadi (bu tasvir mos keladi)

kod nuqtasi bilan, garchi bunday moslik kafolatlanmagan). UTF-8 da



c2 kodlashiga mos keladi . Xuddi shunday UTF-16 da,

ff fe b2 00 kodlash usulidan foydalanadi . Shunday qilib, bu kod ishora

Unicode bir nechta turli xil kodlashlardan iborat.



20.2. Python-dagi muhim bosqichlar

Python-da siz Unicode satrlarini yaratishingiz mumkin. Aslida, siz buni qildingiz

kitobning birinchi sahifalarida: Python 3-da barcha satrlar kodlanganligini eslang

unikodda. Agar siz belgilar bilan satr yaratmoqchi bo'lsangiz nima bo'ladi?

emas ASCII? Quyida "x 2 " satrini yaratish uchun kod mavjud . Agar

satrda ishlatiladigan glifni topasiz, nusxa oling

koddagi belgi:

>>> natija = 'x²'





184-bet

184

20-bob. Unicode

Unicode kodlash va dekodlash

Unicode qatori

x

"x \ u00b2"



"x \ n {IKKI SUPERSCRIPT}"

Bayt qatori

.encode ('utf-8')

.decode ('utf-8')

2

b "x \ xcb \ xb2



Anjir. 20.2. Kodlash (bu holda UTF-8) satrlari

Bayt vakillik va keyingi ichiga Unicode o'girish shu

Unicode baytli qator (UTF-8-dan foydalangan holda). Shuningdek

dekodlash sizning niyatlaringiz haqida juda aniq bo'lishi kerak, chunki

noaniqlik noto'g'ri ma'lumotlar yoki belgilar buzilishiga olib keladi

Ushbu usul odatda ishlaydi, garchi muammolar yuzaga kelsa ham

Shriftingiz belgilangan glifni qo'llab-quvvatlamaydi. Keyin o'rniga bo'ladi

tofu " deb nomlangan ekranni (bo'sh to'rtburchak yoki rombus) namoyish eting

savol belgisi bilan). Shuningdek, kiritilmagan belgilarni kiritish uchun

ASCII-da siz Unicode o'n oltilik kod kod nuqtasini yoqishingiz mumkin

\ u prefiksidan keyin :

>>> natija2 = 'x \ u00b2'

E'tibor bering: bu chiziq oldingi satr bilan bir xil:

>>> natija == natija2

Rost

Va nihoyat, satrda kod nuqtasi nomini ilova qilish orqali ishlatishingiz mumkin



uni \ n {} qavs ichida :

>>> result3 = 'x \ N {IKKINChI SUPERSCRIPT}'

Ushbu usullarning barchasi ishlaydi. Va ularning barchasi bir xil satrni qaytaradi

Unicode:


>>> chop eting (natija, 2-natija, 3-natija)

x² x² x²




185-bet

20.3. Kodlash

185

Uchinchi variant kamroq ixchamdir. Ammo eslamasangiz

kerakli kod nuqtasi yoki glif shrift bilan qo'llab-quvvatlanmaydi, ehtimol

bu variant eng o'qiladigan.



MASLAHAT

Python hujjatlarida Unicode bo'yicha bo'lim mavjud. Kirish

help () va keyin UNICODE . Ushbu bo'limda Unicode haqida ko'p narsa muhokama qilinmaydi,

Python satrlarini yaratishning turli xil usullari.



20.3. Kodlash

Python-da Unicode-ni tushunishning kalitlaridan biri bu tushunish-

Bir haqiqatdir Unicode string bir bayt satrlari kodlangan . Bayt

Yuqori satrlar hech qachon kodlanmaydi, lekin ularni mag'lubiyatga uchratish mumkin

Unicode Xuddi shunday, Unicode satrlari dekodlanmaydi .

Kodlash va dekodlash jarayonlarini ko'rib chiqishingiz mumkin

boshqa tomondan: kodlash tushunarli yoki mazmunli o'zgaradi

mavhum vakillik uchun inson vakili mo'ljallangan

saqlash uchun (baytdagi harflar yoki baytlarda harflar) va dekodlash uchun

ushbu mavhum tasvirni qulay shaklga qaytaradi

odam uchun.

Berilgan Unicode STRING uchun, siz qo'ng'iroq qilishingiz .encode usuli uchun

uning taqdimotini turli xil kodlashlarda tomosha qiling. UTF-8 bilan boshlaylik:

>>> x_sq = 'x \ u00b2'

>>> x_sq.encode ('utf-8')

b'x \ xc2 \ xb2 '

Agar Python kodlashni qo'llab-quvvatlamasa, xato tashlanadi

UnicodeEncodeError . Bu Unicode kod nuqtalari yo'qligini anglatadi

ushbu kodlashda qo'llab-quvvatlanadi. Masalan, ASCII qo'llab-quvvatlamaydi

kvadratik belgi:

>>> x_sq.encode ('ascii')

Traceback (eng so'nggi qo'ng'iroq oxirgi):

...

UnicodeEncodeError: 'ascii' kodek belgi kodlay olmaydi



1-pozitsiyadagi '\ xb2': tartibsiz (128)



186-bet

186

20-bob. Unicode

Agar siz Python bilan uzoq vaqt ishlagan bo'lsangiz, ehtimol siz duch kelgansiz

bu xato bilan. Belgilangan kodlash imkon bermaydi degan ma'noni anglatadi

barcha belgilarni ifodalaydi. Agar siz majbur qilmoqchi bo'lsangiz

Kodlash uchun Python, keyin siz xatolar parametrini o'tishingiz mumkin . Nima-

Python tasavvur qila olmaydigan belgilarga e'tibor bermaslik,

xatolarni o'tkazib yuboring = 'e'tiborsiz' parametr :

>>> x_sq.encode ('ascii', xatolar = 'e'tiborsizlik')

b'x '


Agar siz xatolar = 'almashtirish' parametrini o'tkazsangiz , Python savol beruvchini joylashtiradi -

Qo'llab-quvvatlanmaydigan bayt o'rniga belgilar:

>>> x_sq.encode ('ascii', xatolar = 'almashtirish')

bxx? '


ESLATMA

Kodlash moduli qo'llab-quvvatlanadigan kodlash uchun xaritalarni o'z ichiga oladi

Python Python 3.6 99 kodlashni qo'llab-quvvatlaydi. Ko'p zamonaviy

ilovalar UTF-8 bilan cheklanib qolishga harakat qiladi, ammo sizga yordam kerak bo'lsa

Boshqa kodlashlarga kelsak, ular Python-da qo'llab-quvvatlanishi mumkin.

Kodlash jadvali encodings.aliases.aliases-da joylashgan . Shuningdek, stol

kodlash Python 1 saytidagi modul hujjatlarida berilgan .

Ushbu chiziq uchun kodlashning bir nechta mumkin bo'lgan variantlari:

>>> x_sq.encode ('cp1026') # turkcha

b '\ xa7 \ xea'

>>> x_sq.encode ('cp949') # Koreys

b'x \ xa9 \ xf7 '

>>> x_sq.encode ('shift_jis_2004') # yapon

b'x \ x85K '

Python ko'plab kodlashni qo'llab-quvvatlasa ham, ular kamroq va kamroq ishlatiladi.

amalda. Qoida tariqasida, ular faqat meros qilib olinadi

ilovalar. Hozirgi kunda ko'pgina dasturlar UTF-8-dan foydalanadi.

1

https://docs.python.org/3/library/codecs.html





187-sahifa

20.4. Dekodlashtirish

187

20.4. Dekodlashtirish

Python-da "dekodlash" atamasi alohida ma'noga ega. U degani

baytlar ketma-ketligini olish va Unicode qatorini yaratish.

Pythonda baytlar hech qachon kodlanmaydi, lekin faqat kodlangan (tegishli-

Aslida , bayt uchun .encode usuli mavjud emas). Agar eslasangiz

ushbu qoida, bu sizni ramzlar bilan ishlashda ko'p muammolardan xalos qiladi,

ASCIIda emas. Aytaylik, sizda ketma-ketlik bor

X ² uchun UTF-8 bayt :

>>> utf8_bytes = b'x \ xc2 \ xb2 '

Bayt sifatida berilgan belgilar ma'lumotlari bilan ishlashda,

iloji boricha tezroq ularni Unicode qatoriga o'tkazishga harakat qiling.

Odatda, dasturda siz faqat satrlar bilan shug'ullanishingiz kerak,

va baytlardan faqat seriyalash mexanizmi sifatida foydalaning (ya'ni qachon

fayllarni saqlash yoki ularni tarmoq orqali uzatish). Agar siz ushbu baytlarni olsangiz

ba'zi bir manbadan va ishlatilgan ramka yoki kutubxona emas

ularni satrga o'zgartiradi, siz buni qilishingiz mumkin:

>>> text = utf8_bytes.decode ('utf-8')

>>> matni

'x²'

Siz diqqat qilishingiz kerak bo'lgan yana bir nuqta - bu siz qila olmaysiz



baytlarning ketma-ketligi kodlanganligini taxmin qiling.

Bilasizmi, koddagi ma'lum bir ketma-ketliklar UTF-8,

chunki siz uni o'zingiz yaratgansiz; lekin agar noma'lum bayt bo'lsa

Siz ularni boshqa manbadan olgan bo'lsangiz, ehtimol ular ega bo'lishi mumkin

boshqa kodlash.

ESLATMA

Belgilarni kodlashni bilishingiz kerak; aks holda siz qila olasiz

noto'g'ri kodlash bilan dekodlashga harakat qiling va oling

noto'g'ri ma'lumotlar. Bunday noto'g'ri dekodlangan satrlar deyiladi

Mojibake " ("belgilarni buzish" degan ma'noni anglatuvchi yaponcha so'z - lekin)

"Mojibake" salqinroq eshitiladi).





188-bet

188

20-bob. Unicode

Noto'g'ri dekodlashga bir nechta misollar:

>>> b'x \ xc2 \ xb2'.decode ('cp1026') # turkcha

'¥B ¥'

>>> b'x \ xc2 \ xb2'.decode ('cp949') # Koreys



'x'

>>> b'x \ xc2 \ xb2'.decode ('shift_jis_2004') # yapon

'x'

Ba'zi kodlashlar barcha bayt ketma-ketligini qo'llab-quvvatlamaydi.



Agar siz noto'g'ri kodlash bilan dekodlashni amalga oshirsangiz, buning o'rniga

buzilgan belgilar siz istisno olasiz. Masalan, ASCII emas

bayt quyidagi ketma-ketlikni qo'llab-quvvatlaydi:

>>> b'x \ xc2 \ xb2'.decode ('ascii')

Traceback (eng so'nggi qo'ng'iroq oxirgi):

...


UnicodeDecodeError: 'ascii' kodek 0xc2 baytini dekodlay olmaydi

1 pozitsiyada: tartibsiz (128)

UnicodeDecodeError xatosi, siz aylantirmoqchi bo'lganingizni anglatadi

Unicode satriga bayt-satr yoziladi va kodlashga ruxsat berilmaydi

Barcha baytlar uchun unikal kod satrlari. Qoida tariqasida, bu foydalanishdan dalolat beradi

noto'g'ri kodlash. Optimal natijalar uchun,

kodirovka to'g'ri kodlashni aniqlashga va ishlatishga harakat qiladi.

Agar kodlash noma'lum bo'lsa, siz xatolar parametrini = 'e'tiborsiz qoldirishingiz' ,

ammo bu ma'lumotlar yo'qolishiga olib keladi. Ushbu chora faqat ishlatilishi kerak.

oxirgi chora sifatida:

>>> b'x \ xc2 \ xb2'.decode ('ascii', xatolar = 'e'tibor bermaslik')

'x'


20.5. Unicode va fayllar

Matnli faylni o'qiyotganda Python Unicode satrlarini qaytaradi.

Python odatiy kodlashni qo'llaydi ( locale.getpre fer re-

kodlash (noto'g'ri) ). Agar siz matnli faylni boshqasiga kodlamoqchi bo'lsangiz

kodlash, ushbu ma'lumotlarni parametrlarni kodlash funktsiyasiga o'tkazing

yozildi ochiq .





189-bet

Download 363.98 Kb.

Do'stlaringiz bilan baham:
1   ...   11   12   13   14   15   16   17   18   ...   21




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling