gpt4 book ai didi

python - 如何将文件从 FTP 服务器复制到另一个 FTP 服务器(与平台无关)

转载 作者:行者123 更新时间:2023-11-30 22:24:45 25 4
gpt4 key购买 nike

我制作了一个脚本,将文件从本地计算机复制到 FTP 服务器。我引用此链接来制作脚本 Upload folders from local system to FTP using Python script ,但现在我想使用 Python 脚本将文件从 FTP 复制到不同位置的另一台远程 FTP 计算机。如何做到这一点?

可以使用 rsync 命令完成文件复制,但我想使用 Python 脚本来完成此操作。

代码:

import ftplib
import os

server = 'host'
username = 'name'
password = 'pass'
ftp = ftplib.FTP(server, username, password)
Path = 'path'#source
val = "/des/"#destination

def copy(source,destination):
print(source)
print(destination)
os.chdir(source)
ftp.cwd(destination)
if "C:\\" in Path or "c:\\" in Path:
ftp_path = (source).split("\\")[-1]
else:
ftp_path = (source).split("/")[-1]
directory = destination+ftp_path
mkdir(directory)
ftp.cwd(directory)
read = os.listdir(source)
for file in read:
print(file)
if "C:\\" in Path or "c:\\" in Path:
Type = source + "\\" + file
else:
Type = source + "/" + file
print(Type)
print()
if os.path.isdir(Type):#If Type is Folder then it will create new
folder
copy(Type,directory+"/")
elif os.path.isfile(Type):#If Type is file then it will create file
print(Type)
current_dir = ftp.pwd() + "/"
f = Type
fh = open(f, 'rb')
ftp.storbinary('STOR %s' % current_dir + file, fh)
fh.close()

def mkdir(path):
#print(path)
ftp.mkd(path)
copy(Path,val)



ftp.close()

最佳答案

一般来说,如果 FTP 协议(protocol)是您访问计算机的唯一方式,则您无法将文件从一个远程 FTP 服务器传输到另一台远程 FTP 服务器。

FXP protocol允许这样做,但大多数 FTP 服务器通常不允许这样做。

如果您对其中一台服务器有其他访问权限,例如 SSH,您当然可以自动登录到该服务器,然后在其上运行 FTP 客户端,以向另一台服务器上传/下载。

另请参阅FTP copy a file to another place in same FTP .

关于python - 如何将文件从 FTP 服务器复制到另一个 FTP 服务器(与平台无关),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47752041/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com