在Python中过滤Windows文件名中的非法字符方法


Posted in Python onJune 10, 2019

网上有三种写法:

第一种(所有非法字符都不转义):

def setFileTitle(self,title):   
      fileName = re.sub('[\/:*?"<>|]','-',title)#去掉非法字符 
      self.file = open(fileName + ".txt","w+")

\非法字符必须转义,否则\/被解释为/

第二种(所有非法字符都转义):

def validateTitle(title):
  rstr = r"[\/\\\:\*\?\"\<\>\|]" # '/ \ : * ? " < > |'
  new_title = re.sub(rstr, "_", title) # 替换为下划线
  return new_title

第三种(部分非法字符转义):

private static Pattern FilePattern = Pattern.compile("[\\\\/:*?\"<>|]"); 
public static String filenameFilter(String str) { 
  return str==null?null:FilePattern.matcher(str).replaceAll(""); 
}

最佳写法:

pattern=r'[\\/:*?"<>|\r\n]+'

在[]中*不需要转义,此时*不表示多次匹配,就表示本身的字符

注意

文件夹名和文件名的字串中可以包含不是26个字母和数字的特殊字符,例如“┽┾┿╀╂╁╃ ”这个字串是可以命名成功的的,另一方面文件名首尾的空格要去掉,首尾的点号要去掉,特殊的空白符(如换行符和制表符)也要去掉。

python中strip(),lstrip(),rstrip()可以取出两端的某些特殊的字符。

以上这篇在Python中过滤Windows文件名中的非法字符方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Tornado服务器中绑定域名、虚拟主机的方法
Aug 22 Python
简单介绍Python2.x版本中的cmp()方法的使用
May 20 Python
Python的Flask框架中配置多个子域名的方法讲解
Jun 07 Python
Ubuntu 下 vim 搭建python 环境 配置
Jun 12 Python
详解Python函数可变参数定义及其参数传递方式
Aug 02 Python
django文档学习之applications使用详解
Jan 29 Python
浅谈pandas中Dataframe的查询方法([], loc, iloc, at, iat, ix)
Apr 10 Python
解决python matplotlib imshow无法显示的问题
May 24 Python
TensorFlow通过文件名/文件夹名获取标签,并加入队列的实现
Feb 17 Python
基于python实现上传文件到OSS代码实例
May 09 Python
python 利用matplotlib在3D空间中绘制平面的案例
Feb 06 Python
告别网页搜索!教你用python实现一款属于自己的翻译词典软件
Jun 03 Python
对Python 检查文件名是否规范的实例详解
Jun 10 #Python
java判断三位数的实例讲解
Jun 10 #Python
Python字符串的一些操作方法总结
Jun 10 #Python
利用selenium爬虫抓取数据的基础教程
Jun 10 #Python
Python 监测文件是否更新的方法
Jun 10 #Python
python实现随机漫步方法和原理
Jun 10 #Python
使用python判断jpeg图片的完整性实例
Jun 10 #Python
You might like
咖啡豆要不要放冰箱的原因
2021/03/04 冲泡冲煮
推荐几款用 Sublime Text 开发 Laravel 所用到的插件
2014/10/30 PHP
Yii2使用表单上传文件的实例代码
2017/08/03 PHP
javascript Split方法,indexOf方法、lastIndexOf 方法和substring 方法
2009/03/21 Javascript
为JavaScript类型增加方法的实现代码(增加功能)
2011/12/29 Javascript
js动态为代码着色显示行号
2013/05/29 Javascript
鼠标焦点离开文本框时验证的js代码
2013/07/19 Javascript
js中哈希表的几种用法总结
2014/01/28 Javascript
SuperSlide2实现图片滚动特效
2014/06/20 Javascript
javascript禁止访客复制网页内容的实现代码
2015/08/05 Javascript
一个用jquery写的判断div滚动条到底部的方法【推荐】
2016/04/29 Javascript
Angularjs实现搜索关键字高亮显示效果
2017/01/17 Javascript
canvas压缩图片转换成base64格式输出文件流
2017/03/09 Javascript
ES6中Generator与异步操作实例分析
2017/03/31 Javascript
详解angularJs指令的3种绑定策略
2017/04/13 Javascript
Vue.js表单标签中的单选按钮、复选按钮和下拉列表的取值问题
2017/11/22 Javascript
vue项目优化之通过keep-alive数据缓存的方法
2017/12/11 Javascript
vue.js的computed,filter,get,set的用法及区别详解
2018/03/08 Javascript
vue利用v-for嵌套输出多层对象,分别输出到个表的方法
2018/09/07 Javascript
vue单页应用在页面刷新时保留状态数据的方法
2018/09/21 Javascript
vue多次循环操作示例
2019/02/08 Javascript
解决vue.js提交数组时出现数组下标的问题
2019/11/05 Javascript
Python爬虫包BeautifulSoup异常处理(二)
2018/06/17 Python
Python使用win32com模块实现数据库表结构自动生成word表格的方法
2018/07/17 Python
python处理DICOM并计算三维模型体积
2019/02/26 Python
python 爬取B站原视频的实例代码
2020/09/09 Python
Python二元算术运算常用方法解析
2020/09/15 Python
Python confluent kafka客户端配置kerberos认证流程详解
2020/10/12 Python
拉拉队口号
2014/06/16 职场文书
租车协议书范本2014
2014/11/17 职场文书
实习单位推荐信
2015/03/27 职场文书
道歉的话怎么说
2015/05/12 职场文书
培训简讯范文
2015/07/20 职场文书
事业单位工作人员2015年度思想工作总结
2015/10/15 职场文书
Python一些基本的图像操作和处理总结
2021/06/23 Python
vue封装数字翻牌器
2022/04/20 Vue.js