Рад са ФТП -ом из Питхона

Преглед садржаја
Питхон То је језик који нам омогућава да на једноставан и интуитиван начин укључимо рад са различитим функционалностима оперативних система, захваљујући великом броју библиотека и документације која постоји на мрежи бесплатно и добро објашњена.
Једна од најјачих тачака овог језика је рад са мрежним протоколима, међу којима можемо поменути ФТП и нешто уобичајеније, као што је е -пошта, са овим можемо развити програме или апликације које нам омогућавају да аутоматски учитавамо датотеке на удаљене рачунаре ако желимо, а све то без потребе да прибегавамо другим алатима изван екосистема Питхон.
Протокол ФТП омогућава нам пренос датотека путем везе у мрежи. Обично је то протокол који користимо за даљинско повезивање са серверима и на овај начин манипулишемо датотекама, обично порт 21Међутим, ово је у потпуности по укусу потрошача, па ако видимо други порт, не чуди да је то прилагођена инсталација.
За интеракцију са овим протоколом потребне су нам две ствари, прва је сервер који је у току и доступан је нашој мрежи, може бити на истој мрежи или можда на Интернету. Друга ствар која је потребна је клијент који може слати и примати информације са наведеног сервера, овај клијент мора имати могућност кориштења портова наведених сервисом и успостављене аутентификације.
Укључите клијента Питхон да могу да успоставим везу ФТП Могуће је испочетка, међутим напор који би нам уложио био би знатан и на крају би могао бити узалудан ако нам не треба нешто посебно.
Да би се избегле непријатности и непотребан развој Питхон пружа нам библиотеку која нам већ помаже у великом делу посла. Говоримо о фтплиб, садржи потпуне и већ тестиране и усавршене методе које олакшавају комуникацију помоћу протокола за пренос датотека ФТП.
Како користити библиотеку?Да бисмо користили ову библиотеку, једноставно је морамо укључити у наш програм користећи упутства увоз и тада почињемо са нормалним развојем. У следећем примеру направићемо мали клијентски програм који се може повезати са сервером ФТП, у овом случају ћемо користити услугу кернел.орг која је Линук веб локација и уз то ћемо навести доступне датотеке.
Одабрали смо овај сервер јер му није потребна аутентификација и омогућава нам коришћење анонимног режима. Хајде онда да видимо код, па ћемо урадити одговарајуће објашњење, једини захтев који нам је потребан је да га имамо Питхон 2.7 и интернет везу:
 #! / уср / бин / енв питхон ПАТХ_ФТП_СЕРВЕР = 'фтп.кернел.орг' импорт фтплиб деф цлиент_фтп_цоннецтион (сервер, корисничко име, пошта): # отворимо везу фтп = фтплиб.ФТП (сервер, корисничко име, пошта) # наводимо листу датотеке у директоријуму / пуб фтп.цвд (" / пуб") принт "Датотеке доступне у% с:"% датотека сервера = фтп.дир () испис датотека фтп.куит () иф __наме__ == '__маин__': цлиент_фтп_цонекион ( сервер = ФТП_СЕРВЕР_ПАТХ, корисничко име = 'анонимно', маил='нободи@ноурл.цом ',) 

Прво што радимо је дефинисање променљиве у датотеци која ће садржати путању сервера ФТП са којим желимо да успоставимо везу, у овом случају је то фтп .кернел.орг, одатле можемо добити информације о кернелу Линук.
Следећи чин који радимо увоз из књижаре фтплиб горе поменуто, овим обезбеђујемо могућност коришћења свих потребних метода за повезивање са горе дефинисаним сервером, за то користимо методу ФТП истог, тамо ћемо проћи руту, корисничко име и е -пошту.
Провера везеДа бисмо проверили да ли веза функционише, користимо наредбу цвд за навигацију до директоријума, а затим помоћу дир () Можемо навести датотеке у тој фасцикли на серверу, када завршимо са процедуром, позивамо методу одустати () да бисте прекинули сесију и прекинули везу.
Овај код мора бити у датотеци назива који желимо са екстензијом .пи тако да наш тумач Питхон може извршити, јер ово на путањи где се налази наша датотека извршавамо са резервисаном речју питхон и назив наше датотеке, што би требало да нам да нешто слично ономе што видимо на следећем екрану:

ЕНЛАРГЕ

Иако у претходном примеру можемо навести датотеке сервера, што је врло корисно за добијање информација са њих, нешто моћније је у могућности да Додај фајлове. Ово је много услужних програма, можемо рачунати, на пример, пренос датотека које су резултат једне апликације за обраду из друге, или можда правити резервне копије рачунара у другој која је унутар мреже. Наравно, данас могу постојати много елегантнија решења, међутим није довољно да то можемо постићи помоћу апликације коју сами развијамо.
УсловДодатни захтев који нам је потребан за ову вежбу је да имамо локални ФТП сервер у нашој тестној опреми, за ово ако имамо Линук систем можемо користити ву-фтп, али ако смо на платформи Виндовс можемо користити Филезилла Сервер који је бесплатан за употребу.
Који год сервер можемо користити, морамо имати дозволе или могућност анонимног приступа, у сваком случају у следећем коду ћемо на бољи начин видети како можемо да учитавамо датотеке.
Морамо отворите кориснички и ФТП налог На локалном серверу који стварамо да бисмо могли да користимо овај пример, он такође ради са удаљеним серверима, једноставно морамо да будемо сигурни да имамо акредитацију ажурирану. Тада можемо користити следећи код:
 #! / уср / бин / енв питхон импорт ос импорт аргпарсе импорт фтплиб импорт гетпасс СЕРВЕР_ФТП_ЛОЦАЛ = 'лоцалхост' ФИЛЕ_ТО_УПЛОАД = 'екампле.ткт' деф уплоад_фтп (сервер, корисничко име, лозинка, уплоад_филе): принт "Повезивање са сервером:% с" % сервер фтп = фтплиб.ФТП (сервер) принт "Пријављивање као: корисник =% с"% корисничко име фтп.логин (корисничко име, лозинка) ект = ос.патх.сплитект (уплоад_филе) [1] ако је ект ин (". ткт "," .хтм "," .хтмл "): фтп.сторлинес (" СТОР " + уплоад_филе, опен (уплоад_филе)) елсе: фтп.сторбинари (" СТОР " + уплоад_филе, опен (уплоад_филе," рб "), 1024) одштампај "Отпремљена датотека:% с"% уплоад_филе иф __наме__ == '__маин__': парсер = аргпарсе.АргументПарсер (десцриптион = 'Пример отпремања ФТП датотека') парсер.адд_аргумент ('- сервер', ацтион = "сторе" , дест = "сервер", дефаулт = СЕРВЕР_ФТП_ЛОЦАЛ) парсер.адд_аргумент ('- филе', ацтион = "сторе", дест = "филе_уплоад", дефаулт = ФИЛЕ_ТО_УПЛОАД) парсер.адд_аргумент ('- усер', ацтион = "сторе" , дест = "н усер_наме ", дефаулт = гетпасс.гетусер ()) апплицатион_параметерс = парсер.парсе_аргс () сервер, уплоад_филе, усер_наме = апплицатион_параметерс.сервер, апплицатион_параметерс. уплоад_филе, апплицатион_параметерс.усер_наме лозинка: лозинка: гетпасс.гетпасс лозинка (промпт ="): гетпасс.гетпасс тхе (промпт = ") уплоад_фтп (сервер, корисничко име, лозинка, уплоад_филе) 

У овом примеру, поред увоза библиотеке фтплиб, такође увозимо библиотеке ти да бисмо могли приступити командама оперативног система, додатно користимо аргпарсе И гетпасс како бисмо обрадили употребу параметара које је унео корисник и тако наш програм учинили динамичнијим.
Затим дефинишемо неколико константи са којима ћемо успоставити сервер и датотеку примера коју ћемо отпремити у фасциклу коју је дефинисао наш корисник ФТП. Следећи корак је отварање везе ФТПМеђутим, у овом случају користит ћемо корисничко име и лозинку, будући да у теорији приступамо послужитељу с анонимном аутентификацијом, то је углавном из сигурносних разлога, а такођер и ради показивања да наш примјер функционира у другим случајевима.
Настављамо са процењивањем проширења наше датотеке, чиме ћемо видети да ли је у питању текстуална датотека, коју за ово користимо сторлинес (), са којима нећемо утицати на садржај истог, у случају да је то друго проширење различито од дефинисаних користићемо методу сторбинари () да бисте могли проследити датотеку у њеном изворном облику са њеним бинарним садржајем, не оштећујући је и не дозвољавајући да се настави користити.
Коначно користимо аргпарсе () да бисмо могли да узмемо аргументе које корисник може да уведе за коришћење нашег програма, са изузетком да ће, ако не постави вредности, бити узете глобалне вредности дефинисане у нашем програму. Покрећемо наш програм и ако је све прошло како треба, моћи ћемо да видимо следећи излаз на нашој конзоли:

ЕНЛАРГЕ

Напомињемо да је у овом случају кориснички параметар једини који користимо, будући да на нашем серверу имамо корисника који се зове тест-питхон, затим уводимо лозинку додељену наведеном кориснику и отпремање датотеке се ефикасно врши.
Овим смо завршили овај водич, научили смо како да успоставимо везу ФТП из програма направљеног у Питхон, овде је важно напоменути како са методама које долазе из стандардне библиотеке Питхон успели смо да спроведемо функционалности за које би нам иначе било потребно много времена, осим велике количине кода који би морао да се генерише. Препоручујемо да наставите са истраживањем званичне документације књижаре фтплиб, на овај начин ћемо значајно повећати наше вештине у свету Питхон, отварајући тако врата да будемо ефикаснији као програмери у овом високо конкурентном технолошком свету.
wave wave wave wave wave