我有一个程序可以帮助处理一些文件操作任务。它构建要使用的文件列表,如下所示:
useful_files = [file for file in os.listdir(self.operatingDirs[0])
if re.match(this_task_re, file)]
然后它与他们一起做事。它不时地告诉用户它在做什么:
for file_name in useful_files:
pub.sendMessage("LOG MESSAGE", msg = "Checking folders for %s" % file_name)
当欧洲用户使用这个程序时,它开始失败,如下所示:
File "usefulfilefolder.pyc", line 310, in _DeduceDropBoxFolders
UnicodeDecodeError: 'ascii' codec can't decode byte 0xcc in position 14: ordinal not in range(128)
与sendMessage
通话就行。
该错误似乎是由于我试图将我从中获得的文件名插入os.listdirs
到消息字符串中而产生的。
IE:我从文件系统得到的文件名好像不能直接打印回来。
它是否正确?
我应该如何处理?
请注意,我必须(我相信)保留从 listdirs 获得的名称,以便我可以在其他文件系统操作中使用它来引用同一文件....
谢谢!
(注意 - 由于不支持的库,我目前无法轻松升级到 Python3)
(编辑以澄清以下评论中的观点)