pyftpsync在输出中添加ESC字符

2024-05-16 21:41:05 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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

Here is output screenshot in sublime as I am unable to paste ESC in browser here

这是我的密码

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()

是什么原因造成的


Tags: infromimportlogloggingcustomftplogger
1条回答
网友
1楼 · 发布于 2024-05-16 21:41:05

这些以ESC开头的序列实际上是ANSI序列,可用于显示彩色文本(和其他文本效果)https://en.wikipedia.org/wiki/ANSI_escape_code

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

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

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

相关问题 更多 >