python处理文件名_[请教]python的中文文件名处理

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

3 楼的可以用 sys.getfilesystemencoding 检测,但由於文件系统的差异,文件名 100% 无损转还是不太可,比如很多 *nix 的文件系统支持除 / 和 \0 外的所有字符,而 win 下不可能

4 楼的可以看 log,当然最好的情况是设 logger,设好以后是一劳永逸的,看 request 和所用的 template 之类的,可以使用 django debug toolbar

1, 5 楼是典型的 encoding 问题

文件名先撇开不说,就说字符编码,只要理清逻辑,那麼类似的 ascii 无法 encode 的错误你就知道怎麼避免

先说编码,ascii 属於 7bit,就算加上最高位,也只能编码 256 个字符,不说 cjk,就光光所有欧洲语系都不够用,於是就出现各种编码方案,特别是 cjk 的,如早期的 gb2312 和 big5

嗯,扯远了,先拉回来

简单的说,目前常见的 cpython2 打包,估计编译时多设了内部使用 ucs2 编码,部分可能用 ucs4,简单的说就是 cpython 内部处理

嗯,这个角度还是太远

这麼说吧,就是当你在外部输入字符串的时候,如果有非 ascii 字符,那麼是一定带有特定的编码方案的,即所谓的 encoding,比如你常用的 linux 下很可能是 utf-8,那麼如果你要转换成其他编码方案,比如 gtk,需要先 decode,然后再 encode

比如:

在 utf-8 下的终端中的 repl

>>> s = '中文' #

>>> u = s.decode('utf-8') #

>>> s_gbk = u.encode('gbk') #

只要理清了这个,那麼上面的文件就知道怎麼处理了,因为通常是概念没理清,不知道什麼时候该用 encode,什麼时候该用 decode 造成的。

然后是文件名的编码问题了,一开头说的可以找出本地文件系统默认编码,但是,各种方案对 unicode 全字符集的支持不一,比如 gb2312 支持的就少,早期 window 用的 cp932(这个数字具体记不清楚) 也少,直接转 utf-8 通常还会出现问题,必须过滤掉非法字符,但这样又可能出现额外的重名,现代的 windows 文件系统名字编码应该没问题了,但是我太久没用过,无法验证。

这几天事情很多,目前只能先草草说一下,太乱了将就一些

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/489506.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

css —— 图片环绕+首行缩进

1.利用css实现图片环绕文字的效果: 只需要给img标签设置float:left/right即可; 2.实现上段文字首行缩进两个字的效果: 使用 text-indent: 2em;即可(em为相对单位,2em相当于两个汉字的距离) 转载…

西华大学c语言期末成绩占比例,期末成绩开始录入!优秀率一般不得超过20%

原标题:期末成绩开始录入!优秀率一般不得超过20%各学院(系):2020-2021学年秋季学期本科生期末成绩录入工作将在新版本科教学一体化信息平台中进行,为了更好地协助任课教师了解本次成绩录入工作,在录入通知正…

c语言商品货架管理_汽配仓库布局及管理

奥玛物流仓储平台我们平台在全球已经发展超过40,660多个联盟成员,遍布全球665个城市,提供超过6亿平方米的仓库空间,并为60,000个用家服务,如想找物流服务或加入我们,可关注公众号 或 登陆网址www.oym56LM.com&#xff…

沈浩:博弈论在人工智能中的应用

转自 ∑ 沈浩老师最近看到一篇不错的文章,让沈雨尘帮助整理一下,与同学们分享!概览什么是博弈论?它是如何应用到人工智能(AI)中的?人工智能中的博弈论是一个迷人的概念,每个人应该有一定了解。我们希望通过…

更新node_kubernetes证书更新

适用环境:kubeadm部署的k8s集群,默认证书位置为/etc/kubernetes/pki如果环境中证书目录为非pki(以ssl为例),则需创建对应软连接。本文以高可用集群为例(3 master)master节点:查看证书…

python 3 关于requests库的 text / content /json

最近在爬SDFDA的数据,刚开始用urllib.request 库,一直连不到数据 ; 后来通过CHROME浏览器的F12,发现该 网站用的是JSON格式{}Content-Type: application/json,},不同于以往的提交方式“Content-Type: text/html; chars…

Matlab论文插图绘制模板第132期—函数等高线填充图

在之前的文章中,分享了Matlab函数折线图的绘制模板: 函数三维折线图: 函数网格曲面图: 函数曲面图: 函数等高线图: 进一步,再来分享一下函数等高线填充图。 先来看一下成品效果: 特…

c语言gets与fgetc,区分C语言中getch、getche、fgetc、getc、getchar、fgets、gets 转

首先,这两个函数不是C标准库中的函数,int getch(void)    //从标准输入读入一个字符,当你用键盘输入的时候,屏幕不显示你所输入的字符。也就是,不带回显。int getche(void)    //从标准输入读入一个字符&#x…

三星固态860evo安装_固态要涨价了?我赶紧屯了这几块好货

从2019年开始,固态硬盘的价格更加适合入手了,几乎已经成为了人们装机的首选,传统的机械硬盘则开始不受重视。到2020年,春节在家闲来无事,笔者发现一些硬盘已经开始有了一定幅度的涨价现象,为了不被请去喝茶…

全球技术竞争新态势

来源:《科技参考》 2019年第11期转自:科情智库技术作为经济增长最重要的驱动力之一,被各国政府视为重要的国家核心资产,围绕着技术的国际竞争也日趋激烈,主要呈现了以下5个特点:一是各国竞相谋划布局新兴和…

python10086查询系统_Python获取移动性能指标

最近两天在研究移动性能这块,这个的用处非常大,比如说在做性能测试的时候用top 或者 dstat 1的时候获取到的性能指标是非常实用的,即时获取的指标评估和分析系统瓶颈。再就是在自动化中调用性能指标,每一步导致的手机性能都即时打…

fir c语言程序,fir.rar fir的c语言程序 - 下载 - 搜珍网

fir/16组实验报告/16组试验报告.docfir/16组实验报告/源程序/Fir_c/cc_build_Debug.logfir/16组实验报告/源程序/Fir_c/Debugfir/16组实验报告/源程序/Fir_c/Debug.lkffir/16组实验报告/源程序/Fir_c/Debug.lkvfir/16组实验报告/源程序/Fir_c/Fir.cfir/16组实验报告/源程序/Fir…

cnn输入层_多尺度CNN特征图的分析与应用

本文适用于那些参与CNN架构设计的工程师和研究人员,他们厌倦了盲目尝试和错误,可以从CNN主干中选择哪些特征图以改善其模型的性能,而宁愿从早期开始设计过程的步骤,以使特征图的空间比例轮廓与训练数据集中的对象尺寸相匹配。抽象…

从5G落地看2020年科技产业投资机会

来源:兴业证券015G 商用开展,通信建设、智能终端、云端服务等领域,出现周期性机遇2019 年全球 5G 移动网络陆续商用,将直接拉动通信行业资本开支,同时刺激联网终端的需求,为 AI 及云计算等应用铺路&#xf…

python模块分类_Python-模块分类及导入

使用python时,我们会发现经常需要import一些模块。模块其实就是一个python文件,导入模块的实质是把模块中的内容执行一次。例如,有个模块叫mokuai,我们可以这样导入from mokuai import * # 导入所有的内容from mokuai import a #从import中导…

C语言 BMP24位变单色,怎么将24位色BMP图片改为单色或16色?(2)

当前位置:我的异常网 VC/MFC 怎么将24位色BMP图片改为单色或16色?怎么将24位色BMP图片改为单色或16色?(2)www.myexceptions.net 网友分享于:2013-01-10 浏览:432次GetClientRect(hWnd,&rc);Width rc.righ…

cat命令详解_需要!Linux常用监视和故障排查命令详解

作者:老油条IT记公众号:老油条IT记#命令预览1.top2.ps3.nice4.kill5.iostat6.mpstat7.vmstat8.df9.du10.netstat11.ss#首先我们先来了解一下什么是进程#进程:是Linux用来表示正在运行的程序的一种抽象概念,Linux系统上所有运行的东…

C语言二维数组找出交集,【leetcode C语言实现】剑指 Offer 04. 二维数组中的查找...

题目描述在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。示例:现有矩阵 matrix 如下&#xf…

知识图谱从哪里来:实体关系抽取的现状与未来

来源:知乎(zibuyu9)作者:韩旭、高天宇、刘知远最近几年深度学习引发的人工智能浪潮席卷全球,在互联网普及带来的海量数据资源和摩尔定律支配下飞速提升的算力资源双重加持下,深度学习深入影响了自然语言处理…

线条边框简笔画图片大全_超治愈萌系手帐素材大全 美食旅游花草人物花边都备齐了...

现代人每天都生活在一个充满焦灼感的空气中,成年人的世界里,每个人都不容易。不论是生活还是工作,都充满了各种挫折。很少有人能一帆风顺,为学习、为工作、为家庭、为感情、我们总会在坎坎坷坷中成长,难免会觉得焦虑。…