Python pyftpsync在输出中添加ESC字符

Python pyftpsync在输出中添加ESC字符,python,unicode,pyftpsync,Python,Unicode,Pyftpsync,我想将我的ftp与本地文件夹以及日志同步。保存的日志以及控制台在检查文件时在每一行的末尾显示这样添加的ESC字符 vendor/phpmailer/phpmailer/language/phpmailer.lang-eo.php[0m[0K 这是我的密码 from ftpsync.targets import FsTarget from ftpsync.ftp_target import FtpTarget from ftpsync.synchronizers import Download

我想将我的ftp与本地文件夹以及日志同步。保存的日志以及控制台在检查文件时在每一行的末尾显示这样添加的ESC字符

vendor/phpmailer/phpmailer/language/phpmailer.lang-eo.php[0m[0K

这是我的密码

from ftpsync.targets import FsTarget
from ftpsync.ftp_target import FtpTarget
from ftpsync.synchronizers import DownloadSynchronizer

import logging
import logging.handlers
from ftpsync.util import set_pyftpsync_logger

custom_logger = logging.getLogger("my.logger")
log_path = "D:\\pyftpsync.log"
handler = logging.handlers.WatchedFileHandler(log_path)
formatter = logging.Formatter("%(asctime)s - %(name)s - %(levelname)s - %(message)s")
handler.setFormatter(formatter)
custom_logger.addHandler(handler)

set_pyftpsync_logger(custom_logger)


local = FsTarget("D:\\ftptest")
user =""
passwd = ""
remote = FtpTarget("/public_html/", "example.com", username=user, password=passwd)
opts = {"force": False, "delete_unmatched": True, "progress": True, "verbose": 4}
s = DownloadSynchronizer(local, remote, opts)
s.run()

可能是什么原因造成的?

这些以ESC开头的序列实际上是ANSI序列,可用于显示彩色文本(和其他文本效果)——

问题在于,您运行此操作的崇高环境并没有处理这些序列,而是将ESC字符(
chr(0x1b)
)扩展为高位“ESC”字符串

如果您在实际的终端中运行相同的代码,而不是从sublime的终端模拟器中运行,这些代码将被更改为实际的颜色更改序列,您应该有一个很好的输出


除此之外,由于输出是由
ftpsync
库代码生成的,因此您可以选择在创建
DownloadSyncronizer
的调用中检查选项,以完全抑制颜色输出

这是有道理的。不过,我正在Windows CMD中运行它,记录器也在保存一个.log文件。即使日志文件包含它,即使对ftpsync使用无颜色标志,结果也是一样的…您使用的是哪个ftpsync版本?我试图寻找它,看看是否可以找到一个解决方法,但我找到了一个“ftpsmartsync”功能,它没有
下载同步器
类。您是否尝试将“进度”设置为false?