使用Paramiko将本地文件夹中具有特定扩展名的所有
本文介绍了使用Paramiko将本地文件夹中具有特定扩展名的所有文件上载到SFTP服务器的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在使用pariko将文件上传到SFTP服务器。我想传输文件夹中的所有文件。文件名的格式为one.txt
,two.txt
...。我希望按如下顺序发送文件:one.txt
然后two.txt
然后three.txt
.....下面用于传输一个文件的代码运行良好,但我尝试传输所有文件的最后一个代码不起作用...
传输所有文件(不工作):
我在b/
中有文件:
但脚本的输出为:
推荐答案
您的代码从不读取本地目录。您的for
循环迭代'/home/netcs/b/'
字符串中的字符,而不是/home/netcs/b/
文件夹中的文件。
要列出文件夹中的文件,请使用
os.listdir
:
How do I list all files of a directory?os.listdir
也只返回文件名,因此在调用SFTPClient.put
时必须将它们与source
结合使用。同样,
SFTPClient.put
的remotepath
参数也必须是完整文件路径。您不希望在找到第一个文件后
break
另一个问题是
print('No txt file found')
放错了位置。您将为每个没有.txt
扩展名的文件打印该命令。
有关递归上传,请参阅:
Python pysftp put_r does not work on Windows
这篇关于使用Paramiko将本地文件夹中具有特定扩展名的所有文件上载到SFTP服务器的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!