python中文文件名乱码,python打开文件乱码

  python中文文件名乱码,python打开文件乱码

  文件夹和文件的名称包含中文字符串时的乱码处理:

  将字符串编码转换为unicode或gbk编码的字符串来解决这个问题。如果在代码的第二行声明了utf-8等编码格式,则汉字字符串在代码中出现的地方将按照utf-8字符串处理;如果没有编码声明,windows系统默认为gbk编码,linux默认为utf-8编码。

  #!/usr/bin/envpython

  #编码:utf-8

  进口货

  #变量S的值字符串“China”以utf-8编码。

  S=中国

  #创建的文件夹是乱码,乱码原因:代码是utf-8中文字符串,但是windows系统默认使用gbk编码,所以会乱码,

  只有一致,才不会乱码。

  #os.mkdir

  #以下两种方法可以创建包含汉字的文件夹和文件。

  #解码s的值,因为是utf-8编码,所以用utf-8解码。

  #os.mkdir(s.decode(utf-8 ))

  #windows系统中的文件夹和文件的名称需要是unicode或gbk编码的字符串,这样才能正常显示而不会出现乱码。

  #os.mkdir(s.decode(utf-8 )。编码( gbk ))

  #f=open(s.decode(utf-8 )。txt , w )

  f=打开(s.decode(utf-8 )。编码( gbk )。txt , w )

  F.close()另外发现一个现象。使用unittest模块时用中文名字创建文件夹是否有区别。

  不使用unittest模块时,可以直接创建包含汉字的文件夹,没有乱码。代码如下:

  #!/usr/bin/envpython

  #编码:utf-8

  进口货

  importchardet

  S=raw_input(请输入要创建的文件夹的名称:)

  #s的值是ascii字符串,即gbk字符串。

  printchardet.detect

  #发现不在unittest模块中,可以直接创建一个包含中文字符串的文件夹,不需要编解码。因此,没有发现乱码。但是

  而且文件编码声明为utf-8,而且没有经过转码,真的很不可思议。

  os.mkdir

  Os.chdir(s)流行于IT软件开发工作室,一个免费的在线学习python平台。欢迎关注!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: