经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 程序设计 » Python » 查看文章
Python办公自动化SFTP详解
来源:jb51  时间:2022/8/1 19:09:51  对本文有异议

前言

提示:这里可以添加本文要记录的大概内容:

公司里B2B是通过WinSCP里SFTP与客户进行数据传输,WinSCP是一个Windows环境下使用SSH的开源图形化SFTP客户端,本想偷个懒拿同事的WinSCP的SFTP代码给总部传数据,同事给的代码调用WinSCP就是执行不成功,不知道WinSCP是否有新旧版本兼容,还是必须两边的操作系统都需要是Windows环境呢,最后只能硬着头皮查资料重新写了一个。

提示:以下是本篇文章正文内容,下面案例可供参考

一、sftp和ftp的区别是什么?

sftp和ftp的区别在安全通道,使用的协议,链接方式,安全性等方面都有不同.

  • 1、sftp是一种安全的文件传输协议,一种通过网络传输文件的安全方法。它确保使用私有和安全的数据流来安全地传输数据。
  • 2、ftp是文件传输协议。ftp 不提供任何安全通道来在主机之间传输文件。在网站上,如果你想把文件和人共享,最便捷的方式莫过于把文件上传到ftp服务器上,其他人通过FTP客户端程序来下载所需要的文件。

sftp和ftp不同的具体表现:

ftp不提供任何安全通道来在主机之间传输文件;而sftp协议提供了一个安全通道,用于在网络上的主机之间传输文件。ftp使用TCP / IP协议。而,sftp是SSH协议的一部分,它是一种远程登录信息。ftp使用TCP端口21上的控制连接建立连接。而,sftp是在客户端和服务器之间通过SSH协议(TCP端口22)建立的安全连接来传输文件。ftp密码和数据以纯文本格式发送,大多数情况下是不加密的,安全性不高。而,sftp会在发送之前加密数据,二进制的形式传递,是无法“按原样”阅读的,安全性较高。
具体请去网上查看

二、使用步骤

1.程序结构

2.配置文件

config.yaml代码如下(示例):

  1. CONFIG: &config
  2. # 日志配置文件路径
  3. LOGGING_CONFIG_PATH: ./Configs/logging.yaml
  4. # 日志文件存放位置
  5. LOGGING_PATH: ./logs
  6. # SFTP
  7. FTP_HOST: ***.*****.com
  8. FTP_PORT: 22
  9. FTP_USER_NAME : XXXXXXXXX
  10. FTP_PASSWORD : XXXXXXXXX
  11. HOME_DIR : /
  12. REMOTE_PATH : /XXX/
  13. LOCAL_DIR : D:\Web\HR
  14. LOCAL_DESDIR : D:\Web\HR\TMP
  15. # 邮件
  16. SMTP_SERVER : CNMAIL
  17. SMTP_USER_NAME : XXX@163.com
  18. SMTP_USER_PWD : XXX
  19. FROM_MAIL : isadmin@XXX.com
  20. TO_MAIL : XXX.zhang@XXX.com
  21. CC_MAIL : XXX.zhang@XXX.com
  22.  
  23.  
  24. DEVELOPMENT : &development
  25. <<: *config # 继承config,没有重新定义的变量,使用config变量值
  26. DEBUG: True
  27.  
  28. PRODUCTION : &production
  29. <<: *config # 继承config,没有重新定义的变量,使用config变量值
  30. DEBUG: True

3.读入配置文件

代码如下(示例):

  1. def create_app(config_name=None, config_path=None):
  2. app = Flask(__name__)
  3. # 读取配置文件
  4. if not config_path:
  5. pwd = os.getcwd()
  6. config_path = os.path.join(pwd, 'Configs/config.yaml')
  7. if not config_name:
  8. config_name = 'PRODUCTION'
  9. conf = read_yaml(config_name, config_path)
  10. app.config.update(conf)
  11.  
  12. if not os.path.exists(app.config['LOGGING_PATH']):
  13. # 日志文件目录
  14. os.mkdir(app.config['LOGGING_PATH'])
  15. # 日志设置
  16. with open(app.config['LOGGING_CONFIG_PATH'], 'r', encoding='utf-8') as f:
  17. dict_conf = yaml.safe_load(f.read())
  18. logging.config.dictConfig(dict_conf) # 载入日志配置
  19.  
  20. return app

4.sftp_client.py

5.email_client.py

6.main.py

代码如下(示例):

  1. if __name__ == "__main__":
  2.  
  3. remotePath = ""
  4. localPath = ""
  5. runSFTP(remotePath, localPath)

总结

到此这篇关于Python办公自动化SFTP详解的文章就介绍到这了,更多相关Python SFTP内容请搜索w3xue以前的文章或继续浏览下面的相关文章希望大家以后多多支持w3xue!

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号