파이썬 실습/GUI,윈도우 FTP(파일전송)프로그램 만들기

파이썬 GUI/윈도우 FTP(파일전송) 프로그램 만들기 - 1.소개편

파기차차 2022. 11. 27. 11:16
728x90
반응형
SMALL
반응형
ㅁ 개요

 

O 프로그램 소개
 

 

 - 이번 프로그램은 이전글(2022.11.14 - [파이썬 실습/FTP(파일전송)프로그램 만들기] - 파이썬 FTP(파일전송) 프로그램 만들기 - 1.소개편)에서 만든 FTP 프로그램의 GUI/윈도우 버전입니다.

(본 블로그의 내용은 유튜브 동영상(파이썬 GUI Window FTP(파일전송) 프로그램 만들기-1.소개편(GUI/Window FTP program by Python-1.intro))에서 더욱 자세히 보실 수 있습니다.)

 

 

 

최대한 간단하게 만들어 보려고 하였으나, 기능들을 추가하면서 약간 코드가 길어졌습니다. 좀 더 이해하기 쉽도록 기능별로 쪼개서 아래와 같이 설명드리겠습니다.

 

0. 사전 준비 작업

 - 이번 글의 실습에 필요한 FTP서버를 준비할 예정이며, 매우 간단하게 서버를 준비하고 세팅할 수 있습니다.

 

1. 로그인 부분

 - 1에서 준비한 FTP서버에 로그인하고, 로그인 성공/실패 여부를 알려줍니다.

 

2. 기본 기능(업로드, 다운로드, 선택폴더 진입, 상위 경로로 이동)

 - 로그인 후 FTP 클라이언트의 기본적인 기능인 업로드, 다운로드, 폴더 이동(하위폴더 이동, 상위폴더 이동) 등의 기능을 살펴 봅니다.

 

3. 부가 기능(이름변경, 파일삭제, 폴더생성, 폴더삭제)

 - 추가 기능인 파일이름 변경, 파일 삭제, 폴더 생성, 폴더 삭제 등의 부가 기능을 설명 합니다.

 

 

4. 개선사항

 - 우리 프로그램은 다음과 같은 추가 기능 개선이 필요하며, 이 부분은 본 글을 읽어보시고 독자님들 스스로 직접 해보시기를 강력히 추천 드립니다.

만일 스스로 해보시고 아래 기능들을 개선하신다면 엄청난 스킬업을 경험하실 수 있을 것으로 확신합니다.

 

1) ftp 포트 지정

>현재 우리 프로그램은 기본 포트인 21번만 사용이 가능합니다. 따라서 사용자가 포트를 변경하여 포트를 사용할 수 있도록 개선이 필요합니다.

 

2) 폴더(디렉토리) 삭제 시 빈 폴더만 삭제 가능

>현재 우리 프로그램은 폴더 삭제시 빈 폴더만 삭제 가능합니다. 따라서 폴더내 다른 폴더나 파일이 존재하더라도 삭제가 가능하도록 개선이 필요합니다.


3) 로컬 기능 추가 : 이름변경, 파일삭제, 폴더삭제, 폴더생성

>현재 우리 프로그램에서 부가기능(이름변경, 파일삭제, 폴더삭제, 폴더생성)은 리모트 FTP서버에서만 기능 구현이 되어 있습니다. 해당 기능을 로컬PC에서도 사용할 수 있도록 추가 개발이 필요합니다.

 

 

 

 

**본 프로그램은 아래 깃허브 사이트의 소스를 참고하여 작성하였으며, 세부내용은 아래 사이트를 참고하여 주시기 바랍니다.
[출처] 깃허브, f.tea.p | 작성자 armut
https://github.com/armut/f.tea.p

 

 

 

 

O 완성된 프로그램 실행 화면

 

 

1. 로그인

 

 - 아래 그림과 같이 (1)호스트(ftp 서버 IP), (2)아이디, (3)패스워드를 입력 후 엔터 또는 (4) 연결 버튼을 누릅니다.
 

 

 - 아래와 같이 이상이 없으면 정상적으로 로그인에 성공하며, 로컬에 있는 내PC의 파일/폴더 목록리모트의 FTP서버의 파일/폴더 목록을 가져와서 화면에 뿌려줍니다.

 

 

 

2. 업로드

 

 - FTP클라이언트의 가장 기본 기능이라고 할 수 있는 업로드/다운로드 기능을 보여주고 있습니다.

업로드 시 먼저 로컬의 파일을 선택 후 '업로드=>' 버튼을 누르면 리모트 FTP서버의 해당 폴더에 파일이 전송됩니다.

 

 

3. 다운로드

 

 - 다운로드도 마찬가지로 FTP의 기본 필수 기능입니다.

 다운로드 할때에는 먼저 리모트 FTP서버의 파일을 선택 후 '<= 다운로드' 버튼을 누르면 로컬의 현재 위치에 파일이 다운로드 되고, 왼쪽 하단 라벨에 결과가 표시 됩니다.

 

 

 

 

4. 이름변경

 

 - 다음은 부가 기능으로 리모트 사이트의 파일 이름을 변경하는 기능입니다.

아래와 같이 리모트 사이트에서 파일선택 후 '이름변경' 버튼을 클릭하면 왼쪽 하단의 라벨(레이블)이 라인에디트와 푸쉬버튼으로 변경됩니다.

여기에 변경하고자 하는 이름을 입력 후 'OK' 버튼을 누르면 파일이름이 변경됩니다.

 

 

 - 아래에서 보듯이 'kk.txt' -> 'qq.txt'로 파일명이 변경된 것을 확인할 수 있습니다.

 

 

5. 파일삭제

 

 - 다음은 파일 삭제 부가 기능입니다.

 먼저 삭제할 파일을 선택하고, '파일삭제' 버튼을 누르면 파일이 삭제 됩니다.

 

 

6. 폴더생성

 

 - 다음은 폴더 생성 부가 기능입니다.

 아래에서 보듯이 '폴더생성' 버튼을 누르면 화면 왼쪽 하단에 레이블이 라인에디트 + 푸쉬버튼으로 바뀝니다.

여기에 생성할 폴더명을 입력 후 'OK' 버튼을 누르면 새로운 폴더가 생성됩니다.

 

 

 - 아래에서 보시는 바와 같이 위에서 입력한 'folder'이란 폴더가 생성된 것을 확인할 수 있습니다.

 

 

7.폴더삭제

 

 - 다음은 폴더 삭제 부가 기능입니다.

 먼저 삭제할 폴더를 선택 후 '폴더삭제' 버튼을 누르면 폴더가 삭제됩니다.

 왼쪽 하단에 정상적으로 삭제되었는지 또는 삭제가 안된 경우에 어떤 이유로 삭제가 되지 않았는지 등에 대한 설명을 보실 수 있습니다.

 

 

8. 폴더이동(하위폴더로 이동)

 

 - 다음은 기본 기능이라 할 수 있는 폴더간 이동 기능 입니다.

리모트 서버의 'aaaa'폴더를 선택 후 아래에 있는 '선택 폴더진입->' 버튼을 클릭하면 그 아래 폴더로 들어 갈 수 있습니다.

 

 

 - 아래와 같이 'aaaa'폴더 내로 들어온 것을 확인할 수 있습니다.

 

 

9. 폴더이동(상위폴더로 이동)

 

 - 다음은 기본기능 폴더이동 중 상위폴더로 이동하는 기능입니다.

 리모트 서버의 경우 화면 오른쪽 하단에 '^' 버튼을 클릭하면 상위 폴더로 이동합니다.

 

 

 

 

오늘은 여기까지이며, 다음 글부터 위에서 설명한 기능들에 대하여 하나씩 상세히 설명드리겠습니다.

위의 내용이 유익하셨다면, 좋아요와 구독 부탁드립니다.

 

 

감사합니다.

 

728x90
반응형
LIST