将文件从一台机器连续传输到另一台机器

好东西

]我正在使用 paramiko 将文件从一台机器传输到另一台机器。但我想在文件夹中传输连续文件,直到文件结束..... 文件名的方式是 one.txt, two.txt.... 我希望文件应该按顺序发送,如 one.txt 然后是 two.txt 然后是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')

you can see I have files in :b/
but its output is
no txt file found
no txt file found
no txt file found
  [1]: https://i.stack.imgur.com/T0Nud.png
  [2]: https://i.stack.imgur.com/SwmeS.png
马丁·普里克里尔

您的代码从不读取本地目录。您的for循环迭代字符串中的'/home/netcs/b/' 字符,而不是文件/home/netcs/b/ 中的文件

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

    os.listdir仅返回文件名,因此您必须将它们与source调用SFTPClient.put.

  • 同样,remotepath参数SFTPClient.put也必须是完整的文件路径。

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

  • 另一个问题print('No txt file found')是放错了地方。您将为每个没有.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()

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何将传输配置传输到另一台机器?

如何将端口从一台机器转发到另一台机器?

不能从一台机器 SSH 到另一台机器

kafka 消息从一台机器发送到另一台机器

如何将网站从一台机器上的 IIS 7.5 迁移到另一台机器上的 IIS 8.5?

如果我将/ var从一台机器移到另一台机器,会出什么问题?

如何将Docker卷从一台机器复制到另一台机器?

从另一台机器导入MDF

来自另一台机器的ssh命令

一台机器如何ping另一台机器,但是反向ping不起作用

如何在一台机器上编译幻象,然后在另一台机器上“移植”?

在一台机器上构建内核,在另一台机器上安装

存储过程在一台机器上成功但在另一台机器上失败?

属性在一台机器上工作正常,但在另一台机器上却报错

ESRI层显示在一台机器上,但不在另一台机器上

如何从一台机器到另一台韦诺之战进行保存和升级?

如何从一台机器到另一台机器执行批量插入到 SQLServer 中?

将可启动 HD 从一台机器切换到另一台机器时,Ruby 无法启动

我可以将我的所有Keypass详细信息从一台机器转移到另一台机器吗?

在 xState 中将事件从一台机器发送到另一台机器时传递值

将多个文件从一台主机传输到另一台主机

Github文件在一台机器上可以正常运行,但在另一台机器上无法运行

无法将局域网中的一台机器的远程git repo推送到另一台机器

如何从另一台机器访问XML文件

如何从另一台机器访问我的HDFS文件系统?

将 docker 卷导出到另一台机器

将GitBucket迁移到另一台机器

在 ssh 进入另一台机器时将代码推送到 github

如何将IIS配置复制到另一台机器