出现在Python控制台上的奇怪字符,但不出现在win文件名

时间:2018-01-09 13:46:01

标签: python python-2.7 ascii

我写了一个简单的脚本来重命名目录中的一堆文件:

import os

crash_course_dir = ...
os.chdir(crash_course_dir)

for filename in os.listdir('.'):
    dot_idx = filename.index('.')
    new_file_name = filename[:dot_idx].strip() + ' . ' + filename[dot_idx + 1:].strip()
    print 'before:\t', filename, '\nafter:\t', new_file_name, '\n\n'
    os.rename(filename, new_file_name)

除了一件事之外,它的工作原理如我所愿:

after:  7 . �2,000 Years of Chinese History! The Mandate of Heaven and Confucius - World History.mp4

这是我的控制台中的输出,但当我查看目录时,我看到的只是7 . ‎2,000 Years of Chinese History! The Mandate of Heaven and Confucius - World History.mp4

这是显示这个奇怪字符的唯一文件(共42个)(据我所见)。

我添加了这张支票:

if new_file_name[0] == '7':
    print new_file_name[4], ord(new_file_name[4])

输出: � 253

为什么会这样?有人错误地添加了这个字符,因为它不是窗口可读,没有人注意到?离开这个char会导致问题吗? (我可以使用this

删除它

我在Spyder中使用Python 2.7。 Windows 8.1

1 个答案:

答案 0 :(得分:0)

尝试使用UTF-8格式解码文件名。

print filename.decode('utf-8')