感谢csdn网友对我的帮助
for files in os.walk(r'D:\datamining'):
print(files)
遍历目录但是files是这样的
('D:\\datamining', [], ['security_def.groovy', 'symbol.txt', '\xc9\xcc\xc6\xb7\xc6\xda\xbb\xf5\xd2\xbb\xb7\xd6\xd6\xd3.rar', '\xca\xfd\xbe\xdd\xc7\xe9\xbf\xf6\xcb\xb5\xc3\xf7.txt'])
后面的元素列表才是关键,可以看见后两个中文显示不正确,尤其是当
for file in files:
p+=1
if p==3:
print(file[2])
print (file[-1])
这两个都是出现菱形中?的特殊符号
我觉得是因为os.walk这种系统的东西都是用国际的gbk编码,而pycharm中(file->settings->file encodings)中global encoding是utf-8,两者不一致,所以会出现错误,(如果在python官网下的shell中就没问题,所以应该是工具的编码问题)于是在第一行加上网友们说的
# coding=gb2312
将global encoding改为ascii就可以了,但是老大说不能这样改,以后会出现问题,于是我又改了过来。(但是后来运行就没有问题了,不知道为啥)
还有一种比较靠谱的方法就是print(files[-1][0].decode('gbk').encode('utf-8')),他说他试验了可以,我没试验。
最后提醒注意第一行要加上# coding=gb2312