170 похожих чатов

# Remote directory pathremote_directory = '/path/to/your/remote/directory/' # Establish an SSH connection ssh

= paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(hostname, port, username, password)

try:
# Run ls to list files in the remote directory
stdin, stdout, stderr = ssh.exec_command(f"ls -l {remote_directory}")
file_listing = stdout.read().decode()

# Print the file listing
print(file_listing)

# Assuming you want to open a specific file, replace 'filename.txt' with the actual filename
target_file = 'filename.txt'

# Open the specific file using open_sftp
with ssh.open_sftp().file(remote_directory + target_file, 'r') as remote_file:
file_content = remote_file.read()

# Print the content
print(file_content.decode())
except FileNotFoundError as e:
print(f"File not found: {e}")
finally:
# Close the SSH connection
ssh.close()


Path правильный (имя файла получаю из удалённого ls), но когда открываю файл, ругается что FileNotFoundError, может кто видит причину?

6 ответов

15 просмотров
Ilya- Автор вопроса

Уточню, что там где target_file = filename.txt, я имя файла беру из file_listing, просто там ещё функция, скинул абстрактный код, за этим моментом всё одинакого. Правильно там стоит remote_directory + target_file? Вроде должно работать.

Ilya- Автор вопроса
Ilya
Уточню, что там где target_file = filename.txt, я ...

Хм забавно, после открытия getcwd возвращает ничего, а после chdir(".") правильно возвращает путь.

Ilya- Автор вопроса
Ilya
Хм забавно, после открытия getcwd возвращает ничег...

Но прикол даже не в этом, ему надо путь обязательно давать начиная с абсолютного /, он ~/ не понимает. Кто расскажет почему?

Ilya- Автор вопроса
Dmitry
Потому что каталога ~ не находит ?

Понятно, то есть он у него не определён ( у сфтп) это алиас в линуксе, но не в пакете да?

Ilya
Понятно, то есть он у него не определён ( у сфтп) ...

Я хз что у вас там в "пакете", у меня там вот сейчас хлеб с магазина....

Похожие вопросы

Обсуждают сегодня

Такс, блин, таки кто-то знает, каким образом работают макросы stdin/stdout/stderr? Я влез в stdio.h, там определения нет, отладил через асмокод - вызывается функция со странны...
The Bird of Hermes
18
Всем привет, на линуксе лучше на fasm или nasm учиться писать для начала ?
meszjol
14
Если у меня есть такой класс: Object = {} function Object:new(a_name, a_transform, a_color, a_mesh, a_material, a_shader, a_textures) local private = {} private.n...
Cuarno Vile
4
я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
100
было так ;void set_http_ver(RESPD* ptr, char* version, uint32_t length) // example: 'RTSP/1.1 ' set_http_ver: mov eax, [esp + 4] mov ecx, [esp + 8] ...
Mixail Frolov
5
зачем же переименовывать ? чтобы кол-во участников возросло или вдруг IBM от этого снова на свифте начнет кодить ? Я не понимаю что страшного в том что свифт гавно, если это т...
Oleh Nerzh
10
А еще в перле можно уже @arr1 + @arr2?
Sergei Zhmylove
53
@MrMiscipitlick А можешь макрос написать, который будет вычислять смещение относительно переданных меток? Просто .label1-.label2, и вернуть значение.
КТ315
35
здравствуйте. совершаю вот такую вещь: strcpy(line, (char)current_number); где current number — неподписанный шорт, line — массив чаров. ругань следующая: main.c:29:30: error...
Roberto's Ширгозиев
13
Evo 1.4.34 PHP 7.4 Все работало штатно. На ровном месте SimpleGallery начал выдавать ошибку Что может быть? Уже все переустановил по новой. Места хватает. Хостинг reg.ru
Paul Savchenkov
6
Карта сайта