如何使用Paramiko从SFTP服务器下载今天开始的所有文件?

问题描述 投票:0回答:1

我是 Python 初学者,我正在尝试下载今天使用 Paramiko 从 SFTP 服务器添加的所有文件。我找到了this thread,它解释了如何下载最新文件。但是,我无法运行它,我需要下载今天添加的所有文件,而不是最新的文件。

我能够一一连接并下载文件,并给出确切的路径,但我想自动化该过程。我尝试的代码是我在互联网上找到的代码的组合:

import paramiko
import functools

paramiko.util.log_to_file("paramiko.log")

# Open a transport
host,port = "sftp.xxxxx.com",22
transport = paramiko.Transport((host,port))

# Auth
username,password = "yyyyy","bbbbbb"
transport.connect(None,username,password)

# Go!
sftp = paramiko.SFTPClient.from_transport(transport)

# Download
filepath = "/out/filenames.csv"
localpath = "C:/data_transfered/"
sftp.get(filepath,localpath)

latest = 0
latestfile = None

for fileattr in sftp.listdir_attr():
if fileattr.filename.startswith('JOY') and fileattr.st_mtime \> latest:
latest = fileattr.st_mtime
latestfile = fileattr.filename

if latestfile is not None:
sftp.get(latestfile, latestfile)

我不知道在哪里以及如何准确指定下载文件的源文件路径和文件夹(本地路径)。还需要下载今天起的所有文件。然后我将每天执行 shell 命令代码,以便每天获取所有文件。

python sftp paramiko
1个回答
0
投票

最简单的应该是在使用代码之前更改本地和远程工作目录如何使用Paramiko从SFTP服务器仅下载最新文件?

os.chdir("C:/data_transfered")
sftp.chdir('/out')

或者在

sftp.listdir_attr
sftp.get
调用中使用绝对路径。

© www.soinside.com 2019 - 2024. All rights reserved.