【发布时间】:2014-10-04 22:02:09
【问题描述】:
我研究过这个问题,似乎 Python 2.7 默认使用的是 ASCII,由于库,我无法切换到 python 3(默认 Unicode)
# -*- coding: utf-8 -*-
print u'порядке'
似乎打印得很好,如果没有u,它将是??????
但:
print list(os.walk(ur'c:\somefoler')) 返回 \u0438\u0442... 为什么第一次打印不可读?此外,我将 os.walk 与变量一起使用,我无法将其与 ur 一起使用不要总是工作???? 西里尔文
def findit(self,root, exclude_files=[], exclude_dirs=[]):
exclude_files = (fnmatch.translate(i) for i in exclude_files)
exclude_files = '('+')|('.join(exclude_files)+')'
exclude_files = re.compile(exclude_files)
exclude_dirs = (os.path.normpath(i) for i in exclude_dirs)
exclude_dirs = (os.path.normcase(i) for i in exclude_dirs)
exclude_dirs = set(exclude_dirs)
for root, dirs, files in os.walk(root):
if os.path.normpath(os.path.normcase(root)) in exclude_dirs:
# exclude this dir and subdirectories
dirs[:] = []
continue
for f in files:
if not exclude_files.match(os.path.normcase(f)):
yield os.path.join(root, f)
filelist = list(findit('c:\\',exclude_files = ['*.dll', '*.dat', '*.log', '*.exe'], exclude_dirs = ['c:/windows', 'c:/program files', 'c:/else']))
当它是一个变量时,我似乎必须使用.decode('utf-8')?为什么不存在诸如u'var' 之类的unicode(如果存在)以及为什么有很多次无法转换的异常遇到了它并看到了很多带有此类错误的答案我很难理解它没有办法让它正常工作?
【问题讨论】:
标签: python python-2.7 unicode encoding utf-8