Чтобы загрузить DataFrame на FTP-сервер, вы можете использовать следующие методы с примерами кода:
Метод 1: использование ftplib
from ftplib import FTP
def upload_dataframe_to_ftp(dataframe, ftp_host, ftp_user, ftp_password, ftp_directory, filename):
# Convert DataFrame to CSV
csv_data = dataframe.to_csv(index=False)
# Connect to FTP server
ftp = FTP(ftp_host)
ftp.login(user=ftp_user, passwd=ftp_password)
# Change to the desired directory
ftp.cwd(ftp_directory)
# Upload the CSV file
ftp.storlines(f'STOR {filename}', open(filename, 'rb'))
# Close the FTP connection
ftp.quit()
# Usage example
dataframe = ... # Your DataFrame
ftp_host = 'ftp.example.com'
ftp_user = 'username'
ftp_password = 'password'
ftp_directory = '/path/to/directory'
filename = 'data.csv'
upload_dataframe_to_ftp(dataframe, ftp_host, ftp_user, ftp_password, ftp_directory, filename)
Метод 2: использование ftputil
import ftputil
def upload_dataframe_to_ftp(dataframe, ftp_host, ftp_user, ftp_password, ftp_directory, filename):
# Convert DataFrame to CSV
csv_data = dataframe.to_csv(index=False)
# Connect to FTP server
with ftputil.FTPHost(ftp_host, ftp_user, ftp_password) as ftp:
# Change to the desired directory
ftp.chdir(ftp_directory)
# Upload the CSV file
with ftp.open(filename, 'wb') as f:
f.write(csv_data.encode())
# Usage example
dataframe = ... # Your DataFrame
ftp_host = 'ftp.example.com'
ftp_user = 'username'
ftp_password = 'password'
ftp_directory = '/path/to/directory'
filename = 'data.csv'
upload_dataframe_to_ftp(dataframe, ftp_host, ftp_user, ftp_password, ftp_directory, filename)
Метод 3. Использование парамико
import paramiko
def upload_dataframe_to_ftp(dataframe, ftp_host, ftp_user, ftp_password, ftp_directory, filename):
# Convert DataFrame to CSV
csv_data = dataframe.to_csv(index=False)
# Connect to FTP server
transport = paramiko.Transport((ftp_host, 22))
transport.connect(username=ftp_user, password=ftp_password)
sftp = transport.open_sftp()
# Change to the desired directory
sftp.chdir(ftp_directory)
# Upload the CSV file
with sftp.open(filename, 'w') as f:
f.write(csv_data)
# Close the SFTP connection
sftp.close()
transport.close()
# Usage example
dataframe = ... # Your DataFrame
ftp_host = 'ftp.example.com'
ftp_user = 'username'
ftp_password = 'password'
ftp_directory = '/path/to/directory'
filename = 'data.csv'
upload_dataframe_to_ftp(dataframe, ftp_host, ftp_user, ftp_password, ftp_directory, filename)