Dzwebs.Net

撰写电脑技术杂文十余年

python使用pyftpdlib库作为FTP服务器出现乱码的解决办法

Admin | 2023-8-16 15:56:13 | 被阅次数 | 953

温馨提示!

如果未能解决您的问题,请点击搜索;登陆可复制文章,点击登陆

  在python中使用pyftpdlib库作为FTP服务器,可以指定相应目录设置各种读写权限及匿名访问,相当的方便。

  代码如下:

  from pyftpdlib.authorizers import DummyAuthorizer
  from pyftpdlib.handlers import FTPHandler
  from pyftpdlib.servers import FTPServer

  # 实例化DummyAuthorizer来创建ftp用户
  authorizer = DummyAuthorizer()
  # 参数:用户名,密码,目录,权限
  authorizer.add_user('admin1', '123', 'd:\\ftp', perm='elradfmwMT')
  authorizer.add_user('admin2', '123', 'd:\\ftp', perm='elradfmwMT')

  # 匿名登录
  authorizer.add_anonymous('d:\\ftp\\sharefiles', perm='elradfmwMT')

  handler = FTPHandler
  handler.authorizer = authorizer

  # 参数:IP,端口,handler
  server = FTPServer(('192.168.10.41', 21), handler)
  server.serve_forever()

  '''权限参数
  e 读权限,改变文件目录
  l 读权限,可以列出所有的文件
  r 读权限,可以列出所有的文件
  a 写权限,可以上传文件
  d 写权限,删除文件
  f 写权限,文件重命名
  m 写权限,创建文件
  w 写权限
  M 文件传输的模式
  T 更改文件修改时间
  '''

  但是有一个致命问题:那就是文件名出现乱码。得使用如下方法解决。

  找到库安装目录,大体如:Lib\site-packages\pyftpdlib

  找到该目录下的filesystems.py和handlers.py这两个文件,将里面的所有utf8替换为gbk,这样,就解决问题了。


该杂文来自: 最新技术

上一篇:python类实例之初始化默认参数、元组参数和字典参

下一篇:python中的configparser模块读取Config.conf配置

网站备案号:

网站备案号:滇ICP备11001339号-7

版权属性:

Copyright 2007-2021-forever Inc. all Rights Reserved.

联系方式:

Email:dzwebs@126.com QQ:83539231 访问统计