在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 相关文章推荐
python django集成cas验证系统
Jul 14 Python
python re正则表达式模块(Regular Expression)
Jul 16 Python
Django如何配置mysql数据库
May 04 Python
Django中日期处理注意事项与自定义时间格式转换详解
Aug 06 Python
python selenium执行所有测试用例并生成报告的方法
Feb 13 Python
scrapy-redis的安装部署步骤讲解
Feb 27 Python
django之静态文件 django 2.0 在网页中显示图片的例子
Jul 28 Python
PyQt5事件处理之定时在控件上显示信息的代码
Mar 25 Python
Python3爬虫发送请求的知识点实例
Jul 30 Python
Python 实现PS滤镜中的径向模糊特效
Dec 03 Python
Python实现中英文全文搜索的示例
Dec 04 Python
Python中requests库的用法详解
Jun 05 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
PHP中使用memcache存储session的三种配置方法
2014/04/05 PHP
php里array_work用法实例分析
2015/07/13 PHP
php+ajax 实现输入读取数据库显示匹配信息
2015/10/08 PHP
PHP常用排序算法实例小结【基本排序,冒泡排序,快速排序,插入排序】
2017/02/07 PHP
在jquery中处理带有命名空间的XML数据
2011/06/13 Javascript
JS操作Cookies包括(读取添加与删除)
2012/12/26 Javascript
jQuery.clean使用方法及思路分析
2013/01/07 Javascript
js向上无缝滚动,网站公告效果 具体代码
2013/11/18 Javascript
jQuery中ajax的使用与缓存问题的解决方法
2013/12/19 Javascript
如何判断微信内置浏览器(通过User Agent实现)
2014/09/01 Javascript
jquery中使用循环下拉菜单示例代码
2014/09/24 Javascript
分享两个手机访问pc网站自动跳转手机端网站代码
2020/12/24 Javascript
JavaScript资源预加载组件和滑屏组件的使用推荐
2016/03/10 Javascript
layui 对table中的数据进行转义的实例
2019/09/12 Javascript
[07:08]2014DOTA2西雅图国际邀请赛 小组赛7月11日TOPPLAY
2014/07/11 DOTA
[00:31]2016完美“圣”典风云人物:国士无双宣传片
2016/12/04 DOTA
Python实现递归遍历文件夹并删除文件
2016/04/18 Python
python3实现读取chrome浏览器cookie
2016/06/19 Python
学习Django知识点分享
2019/09/11 Python
tensorflow2.0的函数签名与图结构(推荐)
2020/04/28 Python
一篇文章带你搞定Ubuntu中打开Pycharm总是卡顿崩溃
2020/11/02 Python
html5清空画布方法(三种)
2017/10/16 HTML / CSS
英国足球店:UK Soccer Shop
2017/11/19 全球购物
eBay爱尔兰站:eBay.ie
2019/08/09 全球购物
Oracle性能调优原则
2012/05/03 面试题
社区包粽子活动方案
2014/01/21 职场文书
留学顾问岗位职责
2014/04/14 职场文书
关爱留守儿童标语
2014/06/18 职场文书
公司委托书格式
2014/08/01 职场文书
大学生党员自我评价
2015/03/04 职场文书
爱心捐款活动总结
2015/05/09 职场文书
2015最新婚礼司仪主持词
2015/06/30 职场文书
教师读书活动心得体会
2016/01/14 职场文书
幼儿园教师心得体会范文
2016/01/21 职场文书
离婚协议书范本(2016最新版)
2016/03/18 职场文书
面试提问mysql一张表到底能存多少数据
2022/03/13 MySQL