当前位置:  编程技术>jquery

Python中文路径处理问题深入研究

    来源: 互联网  发布时间:2014-10-08

    本文导语:  Python中文路径处理问题总结。 有如下字符串: a = '你' 为 str 对象 a = u'你' 为 unicode 对象 操作示例:   1. >>> print 'u'  + '你' >>> u浣 输出乱码 2. >>> print 'u'  + u'你' >>> u你 正常 3. >>> print 'u你' >>> u浣 输出乱码 4. >>> print '...

Python中文路径处理问题总结。

有如下字符串:
a = '你' 为 str 对象
a = u'你' 为 unicode 对象

操作示例:
 

1.
>>> print 'u'  + '你'
>>> u浣
输出乱码

2.
>>> print 'u'  + u'你'
>>> u你
正常

3.
>>> print 'u你'
>>> u浣
输出乱码

4.
>>> print 'u你' + 'u'
>>> u浣爑
输出乱码

5.
>>> print u'u你' + 'u'
>>> u你u
正常

6.
>>> print u'u你' + '你'
出现错误 UnicodeDecodeError: 'ascii' codec can't decode byte 0xe4 in position 0: ordinal not in range(128)
分析:'你'在内存中 为 0xe4,而python默认的编码方案是ascii,ascii无法识别0xe4 (www. 脚本学堂)

7.
>>> print u'u你' + u'你'
>>> u你你
正常

8.
 

代码示例:
>>> print 'u你' + u'你'
出现错误 UnicodeDecodeError: 'ascii' codec can't decode byte 0xe4 in position 1: ordinal not in range(128)

9.
 

代码示例:
>>> print 'u你'.decode('utf-8') + u'你'
>>> u你你
正常

10.
而在处理由系统采集的含有中文的路径时,使用string.decode('utf-8')就不一定行了,因为简体中文的windows系统默认编码为gb2312,繁体中文版会采用Big5码。
实验过程:
 

代码示例:
file_from = sys.argv[1] 为由系统采集的包含中文的路径
file_to = file_from[:file_from.rfind('\')+1].decode('utf-8')  + u'你_' + file_from[file_from.rfind('\')+1:].decode('utf-8')
print file_to

将出现错误:
UnicodeDecodeError: 'utf8' codec can't decode byte 0xbb in position 24: invalid start byte

应使用:decode('gb2312')
 

代码示例:
file_to = file_from[:file_from.rfind('\')+1].decode('gb2312')  + u'你_' + file_from[file_from.rfind('\')+1:].decode('gb2312')
print file_to 正常

11.
而如果file_from是由你自己写入的包含中文的路径,如file_from = ‘c:你.txt’
那么就应该用decode('utf-8')
可以参考上面的第7点和第9点


    
 
 

您可能感兴趣的文章:

  • python中文乱码的解决方法
  • python处理中文编码和判断编码示例
  • python处理json数据中的中文
  • Python中文编码那些事
  • python3访问sina首页中文的处理方法
  • Python BeautifulSoup中文乱码问题的2种解决方法
  • python将html转成PDF的实现代码(包含中文)
  • python使用reportlab画图示例(含中文汉字)
  • python sqlobject(mysql)中文乱码解决方法
  • Python中使用中文的方法
  • python用于url解码和中文解析的小脚本(python url decoder)
  • python生成随机验证码(中文验证码)示例
  • python 中文字符串的处理实现代码
  • Python 随机生成中文验证码的实例代码
  • python发送邮件示例(支持中文邮件标题)
  • 布同 Python中文问题解决方法(总结了多位前人经验,初学者必看)
  • python中将阿拉伯数字转换成中文的实现代码
  • python 中文乱码问题深入分析
  • Python 中文正则表达式笔记
  • python 文件和路径操作函数小结
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 深入分析在Python模块顶层运行的代码引起的一个Bug
  • Python的垃圾回收机制深入分析
  • Python中的魔法方法深入理解
  • Python 深入理解yield
  • Python GUI编程:tkinter实现一个窗口并居中代码
  • 让python同时兼容python2和python3的8个技巧分享
  • Python不使用print而直接输出二进制字符串
  • 使用setup.py安装python包和卸载python包的方法
  • Python中实现json字符串和dict类型的互转
  • 不小心把linux自带的python卸载了,导致安装一个依赖原python的软件不能安装,请问该怎么办?
  • python异常信息堆栈输出到日志文件
  • python读取csv文件示例(python操作csv)
  • python下用os.execl执行centos下的系统时间同步命令ntpdate
  • python基础教程之python消息摘要算法使用示例
  • Python namedtuple对象json序列化/反序列化及对象恢复
  • 新手该如何学python怎么学好python?
  • Python获取网页编码的方法及示例代码
  • 使用python删除nginx缓存文件示例(python文件操作)
  • Python异常模块traceback用法举例
  • python学习手册中的python多态示例代码
  • python之平台独立的调试工具winpdb介绍
  • 请教:system("C:\python2.4\python.exe C:\aa.py");该语句有何错误?为什么运行界面一闪就消失了并且没有运行完,请给出正确语句!
  • 基于Python的Html/xml解析库Beautiful Soup 4.2.1发布
  • python版本的问题
  • 测试Python内部类型及type和isinstance用法区别
  • Mac OS X10.9安装的Python2.7升级Python3.3步骤详解


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3