python读取文件名有中文_python中处理中文文件名

最近在学习python 真是强大的语言

工作时经常需要批处理一些东西 我以前用c写程序处理 代码写起来很繁琐

用linux的shell处理 又经常要传文件并且功能不够强大

现在用了python 写小程序方便太多了 c用100行的python用30行就搞定了

我碰到的第一问题就是要处理中文的文件路径 当然报错了

SyntaxError: Non-ASCII character ‘xe5′ in file

这个错误是python默认代码文件用ASCII码 你存成UTF-8也没用 需要在程序第一行加

# -*- coding: UTF-8 -*-

这一行有很多写法 不要迷惑

系统只检测 # coding 编码 这三个要素 所以你会查到很多写法

而utf8和UTF-8应该也一样的 不过前者不小写或者后者不大写eclipse就会报错

而实际程序是不报错的 不过为了eclipse好看 我按照规范写的UTF-8

好了 现在文件中可以支持中文了 但是运行 还是报错

IOError: [Errno 2] No such file or directory

这肯定还是编码问题了 我又找了很多编码的资料 用了很多方法

有encode decode unicode 经过一番折腾

也用open成功打开了文件 但是

后来我查到 最规范的打开文件不用那么麻烦 应该是这样的

import os.path

file_name=os.path.normcase(u"C:/项目/文件.txt")

file=open(file_name,'r')

import os.path

file_name=os.path.normcase(u"C:/项目/文件.txt")

file=open(file_name,'r')

前两行是专门操作路径名的函数 会自适应各个操作系统

这里要用unicode串 然后函数会自动处理成可以使用的字符串

而文件路径中 用/或者或者\均可以 这就是python方便的地方

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值