Paramiko SFTP цикл по каталогам и загрузки файлов - PullRequest
0 голосов
/ 25 сентября 2019

У меня есть следующая структура каталогов на удаленном хосте:

+ CLiENT_1
   + cm_generation
       - file1.tsv
   + data_prep
   + logs
+ CLiENT_2
   + cm_generation
       - file2.tsv
   + some_dir
   + logs
+ CLiENT_3
   + cm_generation
       - file3.tsv
   + random_dir_name
   + logs

, где + - это каталоги, а - - это файлы.

Мне нужно загрузить эти .tsv файлы.

Вот что я попробовал:

try:
    # connection to host
    sftp = sftp_connection(source_host, source_username, source_password, source_INPUT_DIR)

    # this will fetch `client` directories `CLIENT_1, 2, 3...`.
    files = get_list_directories(sftp)

    if len(files) > 0:
        for file in files:
            mode = file.st_mode
            if S_ISDIR(mode):                   
                # some logic like check if `cm_direction` dir exists.

                # check if .tsv file exists.

                # if .tsv file found, 
                sftp_download(tsv_file_path)

            elif S_ISREG(mode):
                continue

except Exception as e:
    print(str(e))   
finally:
    sftp.close()
    print("Connection closed..")

У меня есть список client каталогов, но у меня проблема с проверкой, содержат ли эти каталоги cm_generation sub-dir.и снова, если .tsv файлы присутствуют внутри cm_generation.

...