【问题标题】:Getting None when trying to use pysftp to get file尝试使用 pysftp 获取文件时获取无
【发布时间】:2017-11-02 17:50:46
【问题描述】:

我需要从服务器获取文件,然后将它们写入数据库。 我用:

with pysftp.Connection(host, username=username, password=password, cnopts=cnopts) as sftp:
    sftp.chdir('path')
    all_files = [file_name for file_name in sftp.listdir() if 'access' in file_name]
    today_log = all_files[0]
    all_files = all_files[1:]
    df = df.append(sftp.get(str(today_log)))

但它返回None。 如何从文件中获取内容并将其写入数据框?

【问题讨论】:

  • 什么返回None
  • @martineau 文件内容为空,返回None,但不为空。我需要阅读并添加到数据框
  • all_files的值是多少?
  • @errata 这是列表。我在目录中过滤列表,然后将其名称添加到sftp.get()
  • @PetrPetrov 我知道这是一个列表,我是在询问它的值吗? :)

标签: python sftp pysftp


【解决方案1】:

如果我正确理解您的问题,您希望将文件从 SFTP 服务器读取到变量/内存中。

为此,您需要使用.getfo,例如:

flo = BytesIO()
sftp.getfo(remotepath, flo)

或者,直接使用 Paramiko 库(不使用 pysftp 包装器)。
Read a file from server with ssh using python

【讨论】:

    猜你喜欢
    • 2019-05-22
    • 1970-01-01
    • 2018-01-10
    • 2015-02-13
    • 1970-01-01
    • 1970-01-01
    • 2019-08-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多