Articles of python unicode

在python中对非英文文件名进行文件操作

这个问题可能会被我们很多人所面对,但我在unicode处理方面很差。 这是问题:这是一个代码片段,我试图执行.exe文件,并检查文件path是否存在,但没有运气: #Python 2.6.7 filePath = 'C:\\Test\\' # Test folder haveing file BitComet_比特彗星_1_25.exe for (adir, dirs, files) in os.walk(rootdir): for f in files: path = os.path.join(adir,f) if os.path.exists(path ): print'Path Found',path #Extract file #logging(path ) else: print 'Path Not Found' #logging(path ) 我总是得到'未findpath'的结果。 我试图使用path.decode('utf-8'): 但脚本读取文件path为: C:\Test\BitComet_????_1_25.exe 而且由于这个文件path不存在,所以它转到else分支。 请给我一个提示,以处理这个unicode问题,以及它是否更好,如果我能够显示用户在cmd或日志文件中显示文件path。 我很抱歉,如果这似乎是一个重复的职位。

如何在文件中写俄文字符?

在控制台,当我试图输出俄罗斯字符它给了我??????????????? 谁知道为什么? 我试图写入文件 – 在这种情况下是相同的情况。 例如 f=open('tets.txt','w') f.write('some russian text') f.close 里面的文件是 – ????????????????????????? / 要么 p="some russian text" print p ????????????? 在附加的记事本中,不要让我用俄文字母保存文件。 我给这个: 此文件包含Unicode格式的字符,如果将此文件另存为ANSI编码的文本文件,则会丢失该字符。 要保留Unicode信息,请单击下面的“取消”,然后从“编码”下拉列表中select一个Unicode选项。 继续? 如何调整我的系统,所以我不会有这个问题。

处理python mkdtemp中的unicode用户名

我被http://bugs.python.org/issue1681974咬了 – 从那里引用: 如果Windows用户名中包含任何非ASCII字符(如ä或ö),则mkdtemp将在Windows上失败。 mkdtemp引发编码错误。 这似乎是因为在Windows中的默认临时目录是"c:\documents and settings\<user name>\local settings\temp" OP使用的解决方法是: try: # workaround for http://bugs.python.org/issue1681974 return tempfile.mkdtemp(prefix=prefix) except UnicodeDecodeError: tempdir = unicode(tempfile.gettempdir(), 'mbcs') return tempfile.mkdtemp(prefix=prefix, dir=tempdir) 我有两个问题: 为什么这应该工作? 这是多么充分的证据? 从类似的问题(请参阅此答案: Python Popen未能在Windows PowerShell中使用正确的编码 )我得到的概念,我可能应该使用sys.stdout.encoding – 我在任何地方附近的标记? 编辑:实际上是行: print u"input encoding: %s; output encoding: %s; locale: %s" % ( sys.stdin.encoding,getattr(sys.stdout,'encoding',None), locale.getdefaultlocale()) 版画 input编码:无; 输出编码:无; 语言环境:('ja_JP','cp932') […]