【发布时间】:2021-06-27 13:36:46
【问题描述】:
在我的根文件夹中,我有几个文件夹。 例如:
root
AAA
a.txt
a.xml
BBB
b.txt
b.xml
CCC
c.xml
DDD
......
我需要下载除 DDD 之外的所有包含 .txt 文件的文件夹。 例如AAA,BBB有.txt文件,所以我需要下载它除了CCC(因为CCC不包含.txt)
我使用以下代码下载了除 DDD 之外的所有文件,但无法检查它是否包含 .txt
我试过的代码:
from paramiko import SSHClient
import paramiko
from stat import S_ISDIR
ssh = SSHClient()
ssh.load_system_host_keys()
ssh.connect('host', username='test', password='123')
remote_dir ='/root'
local_path = 'C:/download/'
def download_dir(remote_dir, local_dir):
import os
os.path.exists(local_dir) or os.makedirs(local_dir)
dir_items = sftp.listdir_attr(remote_dir)
for item in dir_items:
# assuming the local system is Windows and the remote system is Linux
# os.path.join won't help here, so construct remote_path manually
if(item.filename != "DDD"):
remote_path = remote_dir + '/' + item.filename
local_path = os.path.join(local_dir, item.filename)
if S_ISDIR(item.st_mode):
download_dir(remote_path, local_path)
else:
sftp.get(remote_path, local_path)
download_dir(remote_dir,local_path)
我如何检查其中的文件并根据它下载文件夹?
【问题讨论】:
标签: python python-3.x ssh sftp paramiko