gpt4 book ai didi

python - 如何使用pysftp将字符串写入ftp上的文件?

转载 作者:行者123 更新时间:2023-11-28 21:37:16 24 4
gpt4 key购买 nike

我有一个存储在变量中的大型 xml 文件。我想使用 pysftp 将它直接写入 ftp。
我相信我需要使用 pysftp.putfo 并且这需要一个类似对象的文件。这是一个最小的例子:

from io import StringIO
from pysftp import Connection, CnOpts

cnopts = CnOpts()
cnopts.hostkeys = None
with Connection('localhost'
,username= 'admin'
,password = 'test'
,cnopts=cnopts
) as sftp:
sftp.putfo(StringIO('xml string'))

我收到以下错误:
TypeError: Expected unicode or bytes, got None

我究竟做错了什么?是否有更简单更好的方法来实现我将字符串变量写入 ftp 上的文件的目标?

最佳答案

您的第一种方法是有效的,只需指定一个文件名。内存文件没有默认名称,pysftp 不知道如何命名目标文件。

from io import StringIO
from pysftp import Connection

with Connection('localhost', ...) as sftp:
sftp.putfo(StringIO('xml string'), 'test.txt')

它应该可以正常工作。另外,作为旁注 - Paramiko(pysftml 使用的库) put操作在幕后调用 putfo ,它只是一个薄包装。因此,从服务器的角度来看,如果文件是直接从 FS 或内存上传的,则是完全透明的。

关于python - 如何使用pysftp将字符串写入ftp上的文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49937893/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com