ПредишенСледващото

Въвеждане и извеждане

За да запознае потребителя с програмата показва най-различни начини - данните могат да бъдат показани в електронен формат или записва във файл за по-нататъшна употреба. Част от капацитета ще бъдат обсъдени в тази глава.

Удобен изходен формат

В момента сме намерили два начина за показване на стойностите,: израз оператор (израз отчети) и отпечатайте функция (). (Третият начин - използване запис () метод обект файлове на стандартната изходния файл може да бъдат споменавани като sys.stdout За повече информация относно този продукт, вижте Library Reference на Python.).

Често има желание да имате повече контрол върху форматирането на изход от конвенционален печат, разделени с интервал стойности. Има два начина за форматиране вашата продукция. Първият начин - да извършват цялата работа на собствените си редове: използване на участъци от струнни инструменти и наниз, които можете да създадете всеки шаблон, който ви харесва. стандартен модул низ съдържа много полезни дейности за привеждане на линиите на определена ширина на колоната (скоро ще ги помисли за кратко). Вторият метод - метод използване str.format ().

Модулът съдържа низ клас шаблони. която предвижда друг начин за заместващите стойности на низове.

Остава, разбира се, още един въпрос: как да конвертирате стойности, за да струни? За щастие, Python има два начина за преобразуване на всяка стойност в един ред - с токсично за възпроизводството () и (ул).

Ето два начина за показване таблица на площади и кубчета:

(Имайте предвид, че в първия пример, един интервал между колоните добавя печат () функция. Той винаги вкарва пространства между техните параметри)

Този пример показва метода на низови обекти rjust (). изравняване линия в десния край на ширината предава отстъпвайки място вляво. Има също подобни методи ljust () и център (). Тези методи не вземат нищо, те просто се върнете нов низ. Ако линията е твърде дълго на входа, те не го съкратите, която обикновено е по-малката от две злини. (За отрязване да добавите операция изключване, като например: x.ljust (п) [: п]).

Има и друг начин - zfill (). която запълва пространството с нули от ляво на цифровата низ. Той признава плюс и минус знаци:

Основният метод на прилагане на str.format на метод () е както следва:

Символи вътре скоби (наречени полета с формат (ниви формат)) се заменят с обектите преминали метод формат. Цифрата в скобите показва позицията на обекта в списъка с параметри, подавани към метода на формат.

Ако методът на формат използва именувани параметри, можете да се обърнете към техните стойности с помощта на подходящо име на аргумент.

Позиционни и именувани параметри могат да се комбинират произволно:

След името на полето може да бъде последвана от спецификатор формат ". ". Тя може да се използва за контрол на стойностите на форматиране. Следващият пример резерви най-Pi само три цифри след десетичната запетая.

След определението ". "Има редица - минимална ширина на полето, изразена в брой символи. Това е полезно за създаването на красиви таблици:

Ако вашите низ формати е много дълъг и не искате да го пробие в поднизове, че би било хубаво, ако можете да се споменаваха променливи предназначени за форматиране, а не от позицията и по име. Това може да стане само чрез преминаване на речник и използване квадратни скоби "[]", за да получат достъп до ключовете.

Същото може да бъде направено чрез преминаване на речника на именувани параметри с помощта на "**" нотация:

По-специално, тази техника е полезна в комбинация с вградената Vars (). която връща на речник с местните променливи.

Подробно описание на низове формат с метод str.format (), описани в раздел низове синтактични форматиране.

Форматиране на низове в стар стил

За да форматирате струни могат да бъдат използвани хирургия%. Тя интерпретира левия операнд като низ формат в sprintf стил. които следва да се прилагат към десния операнд и връща низ, в резултат на това превръщане. Например:

Тъй като метод str.format () е сравнително нов, повечето от изходния код на Python все още използва оператор%. Въпреки това, с течение на времето, форматирането на линии, ще бъдат премахнати от езика, така че в повечето случаи трябва да използвате str.format ().

Повече информация може да бъде намерена в низа за форматиране операции в стар стил.

Четене и запис на файлове

отворен функция () връща файл обект, и най-често се използва с два аргумента: отворена (. режим името на файла).

Първият вариант - низ, съдържащ името на файла. Второ - друг низ, съдържащ няколко знака, които описват начина, по който да се използва файла. Режимът на параметър стойност може да бъде символ "R". ако файлът е отворен само за четене "W" - Отворен за писане само (съществуващ файл със същото име, ще бъдат изтрити) и "а" - файлът се отвори, за да добавите: всички данни, записани във файла автоматично се добавя към края. "R +" отваря файла за четене, така и писмено. Параметърът за режим не е задължително, ако пропуснат - приема се, че той е "R".

Обикновено файловете се отвори в текстов режим (текстов режим) - това означава, че вие ​​четете от файл и запис на файл в низ в различни кодировки (по подразбиране е UTF-8). Ако добавим към режим характер на "Б" на файла, файлът се отваря в двоичен режим (двоичен режим): сега данните се четат и записват под формата на двоичен обект. Този режим трябва да се използва за всички файлове, които не съдържат текст.

При използване на текстов режим, всички окончания, по подразбиране, са специфични за платформата (\ н в Unix \ R \ Н на Windows) са съкратен до символа \ н. при четене от файл, и се превръща обратно от \ н във формата, която е специфична за платформата, когато пишете на файла. Това зад промените кулисите да подават данни да работи правилно в случай на текстови файлове, но ще развали двоични данни във файлове, като JPEG или EXE. Следете за да използвате двоичен режим при четене и писане на такива файлове.

Методи за файлови обекти

В примерите по-долу предполага, че предварително създаден файл обект, наречен е.

f.readlines () връща в списъка, съдържащ всички линии с открити във файла данни. Ако Ви е приложена незадължителен параметър podskazka_razmera. функция чете файла, определен брой байтове, плюс някои брой байтове в допълнение, достатъчни за низ завършване и генерира списък с низове от резултата. Често се използва за по-ефективно (файла не е зареден в паметта напълно) прогресивно четене на големи файлове. Те ще бъдат върнати само пълен (Завършен) линия.

Алтернативен начин за извличане и - примка чрез обекта на файла. Той е бърз, ефективно използване на паметта и има прост код, както е в резултат на:

Алтернативен метод е по-лесно, но не осигурява-прецизен контрол над това, което се случва. Тъй като и двете от тези методи на работа буферирани редове по различен начин, тя не бива да се бърка.

f.write (низ), пише съдържанието на линията във файла и връща броя на байтовете, написани.

За да напишете нещо различно от файл онлайн, преди това е нещо, което трябва да конвертирате низ:

f.tell () връща цяло число, което представлява текущата позиция във файла F на. измерва в байтове, считано от началото на файла. За да промените позицията на обект файл, използвайте f.seek (офсет. Къде). Позицията се изчислява чрез добавяне на отместването на базовата точка; еталонната точка е избран от параметъра от. Стойност 0, където мерките за отклонението от началото на файла, стойността 1 използва текущата позиция във файла, а стойност 2 като отправна точка използва файла. Параметър, където може да се пропусне и по подразбиране е 0, използвайки началото на файла, като отправна точка.

При работа с текстови файлове (отворени, без да е символ б в режим на линия), за извършване на позициониране (за придвижване) се разрешава само от началото на файла (с изключение на свитъка до файла с помощта търси (0, 2)).

Когато приключите с всички операции по делото, обадете f.close (), за да го затворите и безплатно копие на всички системни ресурси, използвани при отварянето на този файл. Всички опити да се използва един обект, след като се обадите f.close файл () ще доведе до възникване на изключение.

Смята се, добри обноски, за да се използва тази с при работа с файлове обекти. Предимството на този метод е, че файлът е винаги затворена, след като устройството или ако изпълнението е генериран от изключението. Освен това, в резултат на кода е много по-кратък от еквивалентната форма с блокове се опита - най-накрая:

обектни файлове имат няколко допълнителни методи, като например isatty () и съкращават (). които се използват по-рядко; вижте Ръководството на библиотеката за по-пълен преглед на файлове обекти.

Модулът за туршия

Вместо да принуждава програмист непрекъснато писане и отстраняване на грешки код за сложни типове данни, Python предоставя стандартен модул, наречен туршия. Това е едно прекрасно устройство, което може да отнеме всяко Python обект (дори някои форми на Python код!), И да го превърнете в низ: този процес се нарича опазване (ецване). Възстановяване на обект от представителството на низ се нарича повторно отваряне (unpickling): низ, описващ предмета може да бъде съхранен във файл, добавен към някои данни, или се изпращат по мрежова връзка към отдалечен компютър.

Ако имате обект х и обект е файл. отворите за писане в двоичен режим (двоичен вид, в параметър "WB"), най-лесният начин за запазване на обект изисква един ред код:

За да активирате обекта отново, при условие че е - обект файл отворен за четене (както е в двоичен режим, с параметъра 'РБ "):

(Има версии на тези операции, използвани в повторно активиране на множество обекти, или когато искате да запишете запазените данни към файл, вижте документацията за туршия модул от директорията на библиотеката.)

Свързани статии

Подкрепете проекта - споделете линка, благодаря!