python - pyftp put 将文件截断为 4096 位

标签 python linux sftp paramiko pysftp

我正在编写一个 python 脚本,它通过 sftp(使用 pysftp)将 cvs 文件上传到远程主机。一切似乎工作正常,但上传的文件总是被截断为 4096 字节。如果我使用 sftp 从 os (linux) 上传文件,一切正常。是否有在某处设置为仅允许 4096 字节文件的默认设置?

这是我代码的 sftp 部分:

def sftp_file():
try:
    s = sftp.Connection(host=dropbox, username='oemreport', private_key=private_key)
    s.put(report_file, export_file)
    s.close()

except Exception, e:
    print str(e)

最佳答案

如果“report_file”的文件描述符是打开的,它不会上传完整的文件,因为它还没有完全写入磁盘。

您应该先关闭文件描述符。

report_file.close()

关于python - pyftp put 将文件截断为 4096 位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29972455/

相关文章:

python - 在 Canopy 中导入 matplotlib 时出错 - rc_params_from_file()

java - .vimrc 中的示例 neocomplcache 设置适用于 MacVim,但不适用于 Linux 控制台 vim

linux - 在 SFTP 中传输文件之前检查远程目录大小

php - 使用客户端服务器ssh2_connect中的MAC算法hmac-sha2-256

linux - lftp镜像文件传输期间可能出现的竞争条件?

python - 在 Django 中上传时调整两个图像的大小

python - SQLAlchemy 尝试两次删除多对多次要关系

python - 日期时间元组到秒元组

linux - 父/子进程关闭文件描述符

python - 在 python 中中断 omxplayer 播放