使用 Paramiko 将具有特定扩展名的本地文件夹中的所有文件上传到 SFTP 服务器

2023-12-02

我正在使用 paramiko 将文件上传到 SFTP 服务器。我想传输文件夹中的所有文件。文件的名称是这样的one.txt, two.txt......我希望文件按顺序发送one.txt then two.txt then three.txt.....下面用于传输一个文件的代码运行良好,但我尝试传输所有文件的最后一个代码不起作用......

import paramiko

source = r'/home/netcs/b/one.txt'
dest = r'/home/tein/c/pickle.txt'
hostname = '10.10.10.9'
port = 22 # default port for SSH
username = 'tein'
password = 'po'

try:
    t = paramiko.Transport((hostname, port))
    t.connect(username=username, password=password)
    sftp = paramiko.SFTPClient.from_transport(t)
    sftp.put(source, dest)
finally:
    t.close()

传输所有文件(不起作用):

import paramiko

source = r'/home/netcs/b/'
dest = r'/home/tein/c/'
hostname = '10.10.10.9'
port = 22 # default port for SSH
username = 'tein'
password = 'po'
for file in source:
    if file.endswith('.txt'):
       try:
          t = paramiko.Transport((hostname, port))
          t.connect(username=username, password=password)
          sftp = paramiko.SFTPClient.from_transport(t)
          sftp.put(source, dest)
       finally:
          t.close()
       break
    else:
        print('No txt file found')

I have files in b/: enter image description here

但脚本的输出是:

no txt file found
no txt file found
no txt file found

您的代码永远不会读取本地目录。你的for循环迭代人物 in the '/home/netcs/b/' string, not files in the /home/netcs/b/ folder.

  • 要列出文件夹中的文件,请使用os.listdir:
    如何列出目录中的所有文件?

    还有os.listdir仅返回文件名,因此您必须将它们与source打电话时SFTPClient.put.

  • 同样地remotepath的论证SFTPClient.put还必须是完整的文件路径。

  • 你不想break在第一个找到的文件之后

  • 另一个问题是print('No txt file found')放错地方了。您将打印它every没有的文件.txt扩大。

files = os.listdir(source)
for file in files:
    if file.endswith('.txt'):
       try:
          t = paramiko.Transport((hostname, port))
          t.connect(username=username, password=password)
          sftp = paramiko.SFTPClient.from_transport(t)
          sftp.put(os.path.join(source, file), dest + "/" + file)
       finally:
          t.close()

对于递归上传,请参阅:
Python pysftp put_r 无法在 Windows 上运行

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Paramiko 将具有特定扩展名的本地文件夹中的所有文件上传到 SFTP 服务器 的相关文章

  • Python从int到string的快速转换

    我正在用 python 求解大量阶乘 并发现当我完成计算阶乘时 需要相同的时间才能转换为字符串以保存到文件中 我试图找到一种将 int 转换为字符串的快速方法 我将举一个计算和 int 转换时间的例子 我正在使用通用的 a str a 但感
  • Jupyter Notebooks 不显示进度条

    我正在尝试在 Jupyter 笔记本中显示进度条 这是一台新电脑 我通常做的事情似乎不起作用 from tqdm import tqdm notebook example iter 1 2 3 4 5 for rec in tqdm not
  • 如何使用显式引用转储 YAML?

    递归引用非常适合ruamel yaml or pyyaml ruamel yaml dump ruamel yaml load A A id001 id001 然而 它 显然 不适用于普通引用 ruamel yaml dump ruamel
  • TF map_fn 或 while_loop 用于不同形状的张量列表

    我想处理不同形状的张量序列 列表 并输出另一个张量列表 考虑每个时间戳上具有不同隐藏状态大小的 RNN 就像是 输入 tf ones 1 2 2 tf ones 2 2 3 tf ones 3 2 1 输出 tf zeros 1 2 4 t
  • 更新 Sqlalchemy 中的多个列

    我有一个在 Flask 上运行的应用程序 并使用 sqlalchemy 与数据库交互 我想用用户指定的值更新表的列 我正在使用的查询是 def update table value1 value2 value3 query update T
  • 查找模块中显式定义的函数 (python)

    好的 我知道您可以使用 dir 方法列出模块中的所有内容 但是有什么方法可以仅查看该模块中定义的函数吗 例如 假设我的模块如下所示 from datetime import date datetime def test return Thi
  • 有没有办法在每个特定的时间间隔运行 python Flask 函数并在本地服务器上显示输出?

    我正在使用 Flask 工作 python 程序 我想从字典中提取键 该密钥为文本格式 但我想在每个特定的时间间隔后重复上述整个过程 并每次在本地浏览器上显示此输出 我已经使用flask apscheduler尝试过这个 程序只运行一次并显
  • 使用 scipy curve_fit 拟合噪声指数的建议?

    我正在尝试拟合通常按以下方式建模的数据 def fit eq x a b c d e return a 1 np exp x b c np exp x d e x np arange 0 100 0 001 y fit eq x 1 1 1
  • Apache Spark 中的高效字符串匹配

    我使用 OCR 工具从屏幕截图中提取文本 每个大约 1 5 句话 然而 当手动验证提取的文本时 我注意到时不时会出现一些错误 鉴于文本 你好 我真的很喜欢 Spark 我注意到 1 像 I 和 l 这样的字母被 替换 2 表情符号未被正确提
  • Pandas 滚动窗口 Spearman 相关性

    我想使用滚动窗口计算 DataFrame 两列之间的 Spearman 和 或 Pearson 相关性 我努力了df corr df col1 rolling P corr df col2 P为窗口尺寸 但我似乎无法定义该方法 添加meth
  • 在Python中计算内存碎片

    我有一个长时间运行的进程 不断分配和释放对象 尽管正在释放对象 但 RSS 内存使用量会随着时间的推移而增加 如何计算发生了多少碎片 一种可能性是计算 RSS sum of allocations 并将其作为指标 即便如此 我该如何计算分母
  • PyTorch DataLoader 对并行运行的批次使用相同的随机种子

    有一个bug https tanelp github io posts a bug that plagues thousands of open source ml projects 在 PyTorch Numpy 中 当并行加载批次时Da
  • 使用 numpy 在 python 中执行最大方差旋转

    我正在研究矩阵的主成分分析 我已经找到了如下所示的组件矩阵 A np array 0 73465832 0 24819766 0 32045055 0 3728976 0 58628043 0 63433607 0 72617152 0 5
  • Python 类型安全吗?

    根据维基百科 https en wikipedia org wiki Type system Type safety and memory safety 如果一种语言不允许违反类型系统规则的操作或转换 计算机科学家就认为该语言是 类型安全的
  • 在 Sphinx 中,有没有办法在声明参数的同时记录参数?

    我更喜欢在声明参数的同一行记录每个参数 根据需要 以便应用D R Y http en wikipedia org wiki Don t repeat yourself 如果我有这样的代码 def foo flab nickers a ser
  • 处理大文件的最快方法?

    我有多个 3 GB 制表符分隔文件 每个文件中有 2000 万行 所有行都必须独立处理 任何两行之间没有关系 我的问题是 什么会更快 逐行阅读 with open as infile for line in infile 将文件分块读入内存
  • 为什么 smtplib.SMTP().sendmail 不发送 DKIM 签名邮件

    我已经在服务器上设置了 postfix 以及 openDKIM 当我跑步时 echo Testing setup mail s Postfix test my email address 我收到电子邮件 邮件标题中有一个DKIM Signa
  • Django 模型:如何使用 mixin 类来覆盖 django 模型以实现 save 等功能

    我想在每次保存模型之前验证值 所以 我必须重写保存函数 代码几乎是一样的 我想把它写在 mixin 类中 但失败了 我不知道如何写 super func 我英语不好 抱歉 class SyncableMixin object def sav
  • 如何为所有用户安装 Anaconda python?

    Anaconda python 发行版 https store continuum io cshop anaconda 非常方便地部署科学计算环境 SCE 并根据需要切换python版本 默认情况下 安装会将 python 定位到 anac
  • 使用 urllib 编码时保持 url 参数有序

    我正在尝试用 python 模拟 get 请求 我有一个参数字典 并使用 urllib urlencode 对它们进行 urlencode 我注意到虽然字典的形式是 k1 v1 k2 v2 k3 v3 urlencoding 后参数的顺序切

随机推荐

  • 在谷歌日历java上设置事件ID

    我尝试在 Java 中的 google calendar v3 api 上设置 eventId 但它给了我 400 错误 其中包含 message 无效的资源 id 值 有没有办法自己设置google日历的事件Id thanks 实际上 i
  • 如何通过 Sirikit 创建和使用自定义词汇?

    我希望 Siri 向我显示以下内容中的特定内容IntentViewControllerSiri 对我的特定命令的影响 我尝试过添加一个 plist to lproj但这对我不起作用 我无法理解你想做什么 所以我想给出一个你不能使用的建议IN
  • PHP 简单 HTML DOM 解析器 > 修改获取的链接 [关闭]

    很难说出这里问的是什么 这个问题模棱两可 含糊不清 不完整 过于宽泛或言辞激烈 无法以目前的形式合理回答 如需帮助澄清此问题以便重新打开 访问帮助中心 我有一个脚本可以从网站获取内容 我想要做的是修改所有链接 认为 html str get
  • 如何解释 php_uname 的输出

    来自manual我得到的信息是 mode is a single character that defines what information is returned a This is the default Contains all
  • Bootstrap 模态:不是函数

    我的页面中有一个模式 当我尝试在窗口加载时调用它时 它会在控制台上打印一条错误 modal is not a function 这是我的模态 HTML div class modal fade div class modal dialog
  • 使用 MediaCodec 编辑帧和编码

    我能够解码 mp4 视频 如果我使用配置解码器Surface我可以在屏幕上看到视频 现在 我想编辑帧 添加黄线 甚至更好地重叠小图像 并将视频编码为新视频 没有必要显示视频 我现在不关心性能 如果我在编辑时显示帧 如果编辑功能需要很长时间
  • 如何在R中编写fftshift和ifftshift? [关闭]

    Closed 这个问题需要多问focused 目前不接受答案 In numpy 我们有以下功能 import numpy from numpy fft import fft2 ifft2 fftshift ifftshift 我想用 R 重
  • slurm 集群的最少计算机数量是多少

    我想设置一个SLURM集群 我至少需要多少台机器 我可以从两台机器开始 一台仅是客户端 一台既是客户端又是服务器 吗 正如 Carles 所写 如果您愿意 您可以只使用一台计算机 同时运行控制器 slurmctld 和工人 slurmd 守
  • Rails 4 image-path、image-url 和 asset-url 不再在 SCSS 文件中工作

    除了image url以及 Rails 4 中的其他内容 他们返回不同的值 这些值似乎没有意义 如果我有logo png in app assets images logo png我执行以下操作 这就是我得到的 image url logo
  • 无法在 VBA 上使用 .GetBytes 和 .ComputeHash 方法

    我想将 VB 函数转换为 VBA 该函数正在使用 System Text UTF8Encoding and System Security Cryptography HMACSHA256 对象及其 GetBytes and ComputeH
  • 捕获div上的滚动事件

    我试图捕获 Backbone Marionette CompositeView 中的滚动事件 但没有成功 作为练习 我正在重写http www atinux fr backbone books 使用 Backbone Marionette
  • 即使使用 document.getElementById('xyz').playVideo() 也无法控制 Youtube 嵌入 - 不是函数?

    好吧 我被困住了 即使在遵循 Google 文档并阅读 Stackoverflow 上的建议之后 我也不知道出了什么问题 为什么我无法控制网页中的 Youtube 嵌入 如果我创建一个 HTML 文件 其 为
  • 如何通过多线程绘制到 TBitmap

    为了加快在Delphi XE2中绘制位图的速度 我决定采用以下方式 a 创建一个例如 10 x 线程并仅在线程类内绘制位图的一层 b 一旦所有线程完成 使用 bitblt 函数逐层合并位图 我做了以下实验代码 unit Unit Bitma
  • 删除字符串出现后的文本

    我有一个具有以下格式的字符串 string sample A ABC 1 ACS 如您所见 出现了 5 次 特点 我需要删除一切第四次出现后 最终结果将是 string result fx sample 4 A ABC 1 ACS 没有可能
  • 考虑 RAM 的 url 或哈希索引

    我正在开发一个项目 每天需要添加 更新大约 100 万个网址 有些日子主要是更新 有些日子主要是添加 有些日子是混合的 因此 在每个查询中都需要在 url 表中查找 url 的唯一性 如何快速查找 url 因为目前索引设置在 url 列并且
  • intl PHP 扩展不适用于 xampp 服务器

    我正在尝试安装CakePHP 3 0 0版本 我已经从下载了源代码here 但它显示启用错误intl extension 既然我已经改变了 extension php intl dll to extension php intl dll 删
  • 使用 robolectric v3.0 测试 WiFi 连接时,ShadowNetworkInfo 始终为 TYPE_MOBILE

    我正在尝试使用 Robolectric 3 0 RC2 为 Android 应用程序中的 SyncAdapter 实现编写一些离线测试 该应用程序将在工厂中使用 WiFi 连接的无 SIM 卡手机上运行 所以我希望能够针对我的 wifi 连
  • 如何从 Windows Mobile 设备 6.0 连接到 Web 服务

    我想创建一个 Windows Mobile 应用程序 6 5 它通过托管在我家服务器上的 GPRS 连接到网络服务 使用 Windows 应用程序成功测试了 Web 服务 有人可以指导我应该做什么吗 因为我不知道如何继续 一些代码将非常感激
  • htmlTreeParse 处理程序说明

    包装内XML 在里面 htmlParse examples部分 是以下函数getLinks getLinks lt function links lt character list a function node links lt lt c
  • 使用 Paramiko 将具有特定扩展名的本地文件夹中的所有文件上传到 SFTP 服务器

    我正在使用 paramiko 将文件上传到 SFTP 服务器 我想传输文件夹中的所有文件 文件的名称是这样的one txt two txt 我希望文件按顺序发送one txt then two txt then three txt 下面用于