我有一个记录功能,可以将错误消息写入文件。
特定错误的原因是找不到文件,不是因为该文件不存在,而是因为反斜杠的拼写错误。
例如,我的应用程序代码正在尝试从字符'd:\\reports\2015\\a.txt'
打开一个文件,该文件在'\'
之前缺少2015
。 except
子句将控制权传递给日志记录函数,文件名作为参数,但当日志记录函数尝试写入包含错误文件名的字符串时,它也会因charmap编解码器错误而崩溃。
如何安全地写出一对引号中包含的任何内容?
根据迄今收到的意见,我想我的问题不明确。
我要问的不是文件名本身。我试图解决的是错误记录功能 - 将错误消息写入文件 - 无论错误消息是什么,它都将起作用。在上面的示例中,传递给日志记录功能的错误消息包含非法字符串。
答案 0 :(得分:0)
如果您直接将文件名放入代码中,则会发生错误。然后你应该修复代码,最好使用r
标记:r'd:\reports\2015\a.txt'
。