=xxxxxxxx remote dir =upload of "about-pp htmlsuccessful finallywe can bundle up both guis in single launcher script that knows how to start the get and put interfacesregardless of which directory we are in when the script is startedand independent of the platform on which it runs example - shows this process example - pp \internet\ftp\pyftpgui pyw ""spawn ftp get and put guis no matter what directory ' run fromos getcwd is not necessarily the place this script livescould also hardcode path from $pp ehomeor guesslocationcould also do[from pp launchmodes import portablelauncherportablelauncher('getfilegui''% /getfilegui pymydir)()]but need the dos console pop up on windows to view status messages which describe transfers made""import ossys print('running in'os getcwd()pp from pp launcher import findfirst mydir os path split(findfirst(os curdir'pyftpgui pyw'))[ pp from pp tools find import findlist mydir os path dirname(findlist('pyftpgui pyw'startdir=os curdir)[ ]if sys platform[: ='win'os system('start % \getfilegui pymydiros system('start % \putfilegui pymydirelseos system('python % /getfilegui py &mydiros system('python % /putfilegui py &mydirnotice that we're reusing the find utility from ' example - again here-this time to locate the home directory of the script in order to build command lines when run by launchers in the examples root directory or command lines elsewhere in generalthe current working directory may not always be this script' container in the prior editionthis script used tool in the launcher module instead to search for its own directory (see the examples distribution for that equivalentwhen this script is startedboth the get and put guis appear as distinctindependently run programsalternativelywe might attach both forms to single interface we could get much fancier than these two interfacesof course for instancewe could pop up local file selection dialogsand we could display widgets that give the status of downloads and uploads in progress we could even list files available at the remote site in selectable listbox by requesting remote directory listings over the ftp connection to learn how to add features like thatthoughwe need to move on to the next section transferring files with ftplib