본문 바로가기
Programming/Python

FTP file upload

by NAMP 2018. 11. 7.

FTP file upload

대상 폴더 압축 후, ftp 로 전송하는 파이썬 코드입니다.

os.system

import os
cmd = 'ls -al'
os.system(cmd)

os 대신에, subprocess 를 사용합니다.

subprocess 사용

from subprocess import call
call(["ls", "-l"])

zip 사용

-r 옵션을 주는 경우 대상 폴더를 [폴더]/*로 지정하면 에러 발생

전체 코드

#!/usr/bin/python
import os
import subprocess
import time
from ftplib import FTP

host = [host]
port = [port]

home_path = [home_path]
remote_path = [remote_path]

id = [id]
pw = [pw]


def archive():
    date = time.strftime("%y%m")
    file_name = 'dokuwiki_{}.zip'.format(date)
    subprocess.call(['zip', '-r', file_name, './dokuwiki'], cwd=home_path)
    return file_name


def store(file_path, file_name):
    ftp = FTP()
    ftp.connect(host, port)
    ftp.login(id, pw)
    ftp.cwd(remote_path)
    os.chdir(file_path)
    file = open(file_name, 'rb')
    ftp.storbinary("STOR " + file_name, file)
    file.close()


def main():
    file_name = archive()
    store(remote_path, file_name)


if __name__ == '__main__':
    main()


댓글