Reading Time: 5 mins

Procesautomatisering met Python

Ontwikkelingsbedrijf voor softwaretoepassingen

Procesautomatisering met Python

In dit artikel delen we de ervaring van het configureren van een FTP-server.

Volgens ons onderzoek hebben we besloten om python te gebruiken voor backend. We hebben nooit eerder ervaring met Python gehad. Dus om te beginnen hebben we het eerste installatieproces voor python voltooid. Daarna hebben we manieren onderzocht om de code te ontwikkelen om bestanden van de ene FTP-server naar de andere over te zetten. We hebben nooit een vooraf ontwikkelde code voor onze eis gevonden. Na dagen van verkenning realiseerden we ons dat het niet zo eenvoudig was om bestanden rechtstreeks tussen twee FTP-servers over te zetten. Toen hebben we een tussenoplossing gedaan. We hebben alle bestanden van de bron-FTP-server (Bronserver) naar een lokale server verplaatst en vervolgens alle bestanden van de lokale naar de eind-FTP-server (Destination Server) overgebracht.

 Ontwikkeling van softwaretoepassingen

Bestandsoverdracht tussen FTP-servers

Lijst met FTP-servertools

Lijst met hulpmiddelen die worden gebruikt om onze taak te volbrengen. Sommige bibliotheekbestanden zijn ftplib, os, sys, shutil, xrld en datetime.

  • ftplib-bibliotheek werd gebruikt om bestanden te downloaden en te uploaden naar de FTP-server.
  • os- en sys-bibliotheekbestanden werden gebruikt om de bestanden op de lokale server te lezen, te schrijven en weer te geven.
  • Ten eerste hebben we alle bestanden gedownload van de FTP-bronserver. Met behulp van onderstaande code hebben we alle bestanden gedownload.

Codefragment:

ftp.retrbinary(“RETR” + bestand, open(os.pad.join(bestemming + pad, bestand),,”wb”).write). De bovenstaande code haalt bestanden op en schrijft ze in het bijzonder het pad van de lokale server. Vervolgens wordt deze code ftp.storbinary(‘STOR %s’ % i, open(os.path.join(FileSend,i), “rb”)) gebruikt om upload bestanden van de lokale server naar de FTP-server.

In eerste instantie hebben we een code ontwikkeld om bestanden één bestand per overdracht te downloaden en te uploaden naar de FTP-server. Maar we werden geconfronteerd met een vereiste om dynamisch meerdere bestanden van verschillende FTP-servers te downloaden en te uploaden. Om de zaken te vereenvoudigen, zijn we begonnen met het maken van Excel-bladen om de referenties en het bestandspad van FTP-servers te behouden.

  • XLrd: Via dit bibliotheekbestand konden we alle details uit Excel-sheet lezen en tegelijkertijd verschillende FTP-servers verbinden.

Ten slotte konden we bestanden tegelijkertijd downloaden en uploaden naar verschillende FTP-servers.

Vervolgens probeerden we een aantal basisbestanden uit te pakken/uit te pakken, te verwijderen en te loggen in FTP en op de lokale server. Dit was mogelijk met behulp van Shutil, zipfile, log en datetime bibliotheekbestanden. Enkele van de operationele basisdetails van deze bibliotheekbestanden zijn:

  1. zipfile — Wordt gebruikt om het bestand te archiveren
  2. shutil — Gebruikt om bestand te verwijderen
  3. datetime — Wordt gebruikt om de bestandsnaam te hernoemen met datum en tijd.
  4. log — Wordt gebruikt om een logbestand te maken.

Automatiseringsdeel:

Met behulp van de bovenstaande bibliotheekbestanden en het codefragment hebben we dit proces kunnen bereiken. De volgende stap is om dit hele proces te automatiseren. Dus gebruikten we Windows Taakbeheer om het FTP-proces te automatiseren door het met tijdsintervallen te plannen.

Overzicht :

Eindelijk konden we taken voltooien zoals het overbrengen, verwijderen, archiveren en hernoemen van de bestanden op een FTP-server met behulp van python. Vanuit mijn ervaring is Python een zeer flexibele en gebruiksvriendelijke taal. Met behulp van eenvoudige bibliotheekbestanden kon ik de bovenstaande taken snel voltooien. Maar sommige fouten, zoals een ruimtefout, waren weinig vervelend en het kostte ons wat tijd om erachter te komen. Maar met de hulp van mijn team heb ik deze hele taak met succes kunnen volbrengen.

Keerthi Veerappan

An INFJ personality wielding brevity in speech and writing. Marketer @ Zucisystems.