我写了一个简单的脚本来重命名目录中的一堆文件:
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
答案 0 :(得分:0)
尝试使用UTF-8
格式解码文件名。
print filename.decode('utf-8')