【发布时间】:2020-08-05 02:35:05
【问题描述】:
我正在尝试在远程 Linux 服务器的目录中获取最新的新文件。 SFTP 服务器中的文件每 4 小时创建一次,文件的特定名称以 filegen_date_hour.json 开头,如下例所示。在这种情况下,需要将最新文件 'filegen_20200101_0800.json' 转移到我的本地目录。
filegen_20200101_0000.json
filegen_20200101_0400.json
filegen_20200101_0800.json
我使用下面的 Python 3 代码,但出现错误
latestFile = max(listFile, key=os.path.getctime)
ValueError: max() arg is an empty sequence
SFTP 代码如下
myHostname = "192.168.100.10"
myUsername = "user"
myPassword = "password"
cnopts = pysftp.CnOpts()
cnopts.hostkeys = None
with pysftp.Connection(host=myHostname, username=myUsername, password=myPassword, cnopts=cnopts) as sftp:
with sftp.cd('/home/operation/genfiles/'):
fileDir = '/home/operation/genfiles/filegen_*.json'
**#file have specific pattern with filegen_*.json**
listFile = glob.glob(fileDir)
latestFile = max(listFile, key=os.path.getctime)
sftp.get(latestFile)
感谢您对此事的帮助。感谢您的回复和帮助。
【问题讨论】:
标签: python sftp paramiko pysftp