簡體   English   中英

在Linux和Windows之間使用pysftp.get_r傳輸文件

[英]transferring files with pysftp.get_r between linux and windows

我想將文件從Linux服務器遞歸下載到Windows桌面。 我正在使用以下代碼:

import pysftp
import sys

cnopts = pysftp.CnOpts()
cnopts.hostkeys = None

with pysftp.Connection(host="192.168.1.1", username="user", password="secret", cnopts=cnopts) as sftp:
    sftp.get_r ('test_sftp', 'C:\\Users\\user\\Desktop\\my_dir\\', preserve_mtime=False)
    sftp.close()

我遇到了以下錯誤(遞歸復制文件時):

Traceback (most recent call last):
  File "blah.py", line 12, in <module>
    sftp.get_r ('teste_sftp', 'C:\\Users\\user\\Desktop\\my_dir\\', preserve_mtime=False)
  File "C:\Users\user\AppData\Local\Programs\Python\Python36\lib\site-packages\pysftp\__init__.py", line 311, in get_r
    preserve_mtime=preserve_mtime)
  File "C:\Users\user\AppData\Local\Programs\Python\Python36\lib\site-packages\pysftp\__init__.py", line 249, in get
    self._sftp.get(remotepath, localpath, callback=callback)
  File "C:\Users\user\AppData\Local\Programs\Python\Python36\lib\site-packages\paramiko\sftp_client.py", line 720, in get
    with open(localpath, 'wb') as fl:
FileNotFoundError: [Errno 2] No such file or directory: 'C:\\Users\\user\\Desktop\\my_dir\\test_sftp/n1/M51'

我知道pysftp嘗試將文件夾結構從源重新創建到目標文件夾,但是對於在Windows機器上工作且斜杠應該是反斜杠的事實並不明智。

如何解決呢?

目前,pysftp不支持該功能。

我建議使用Python的默認FTP庫 ,該已經在標准庫中( 包括電池 )。 在那里,您可以調用retrbinary()來提供所需的文件夾。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM