Below is the python program which will connect to SFTP server, upload a file to SFTP server and delete a specific file from SFTP server. Here is the code:
import paramiko
from paramiko.ssh_exception import SSHException
import os
import time
hostname = 'hostname here'
username = 'username here'
password = 'password here'
port = PORT_NO
SSH_Client = paramiko.SSHClient()
SSH_Client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
SSH_Client.connect(hostname=hostname,
port=port,
username=username,
password=password,
look_for_keys=False)
sftp_client = SSH_Client.open_sftp()
print("Connection successfully established ... ")
remoteFilePath = "/home"
# Output: lists of files ['my-directory', 'my-file']
print(f"lists of files {sftp_client.listdir(remoteFilePath)}")
# Output: lists of files [<SFTPAttributes: [ size=0 mode=0o40755 atime=0 mtime=0 ]>, <SFTPAttributes: [ size=50615986 mode=0o100644 atime=1701012997 mtime=1701012997 ]>]
print(f"lists of files {sftp_client.listdir_attr(remoteFilePath)}")
file_to_delete = "file path of SFTP folder"
upload_file_name = 'SFTP_Test.txt'
localFilePath = "local path"+upload_file_name
remoteFilePath = "remote path"
try:
sftp_client.put(localFilePath, remoteFilePath+'/SFTP_Test.txt')
print(f"{file_to_delete} => File is successfully placed on SFTP server ... ")
print("Wait time begin is : ", time.ctime())
time.sleep(15)
print("Wait time end is : ", time.ctime())
# Remove file
sftp_client.remove(file_to_delete)
print(f"{file_to_delete} => file is successfully deleted from SFTP server ... ")
except FileNotFoundError as err:
print(f"File {localFilePath} was not found on the local system")
except ConnectionResetError as cre:
print(f"Connection Reset Error")
except SSHException as cre:
print(f"SSHException")
finally:
sftp_client.close()
Comments
Post a Comment