在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中几个常用的类方法
Apr 08 Python
将Python代码嵌入C++程序进行编写的实例
Jul 31 Python
python中的变量如何开辟内存
Jun 26 Python
解决PyCharm的Python.exe已经停止工作的问题
Nov 29 Python
python利用小波分析进行特征提取的实例
Jan 09 Python
解决django前后端分离csrf验证的问题
Feb 03 Python
Python3 执行系统命令并获取实时回显功能
Jul 09 Python
python打包成so文件过程解析
Sep 28 Python
python轮询机制控制led实例
May 03 Python
python 视频下载神器(you-get)的具体使用
Jan 06 Python
[原创]赚疯了!转手立赚800+?大佬的python「抢茅台脚本」使用教程
Jan 12 Python
全网最全python库selenium自动化使用详细教程
Jan 12 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&amp;mysql 日期操作小记
2012/02/27 PHP
利用PHP fsockopen 模拟POST/GET传送数据的方法
2015/09/22 PHP
php中青蛙跳台阶的问题解决方法
2018/10/14 PHP
PHP hex2bin()函数用法讲解
2019/02/25 PHP
ThinkPHP框架实现的微信支付接口开发完整示例
2019/04/10 PHP
Jquery练习之表单验证实现代码
2010/12/14 Javascript
jquery中ajax调用json数据的使用说明
2011/03/17 Javascript
jquery绑定原理 简单解析与实现代码分享
2011/09/06 Javascript
Lua表达式和控制结构学习笔记
2014/12/15 Javascript
Bootstrap树形控件使用方法详解
2016/01/27 Javascript
JS实现上下左右对称的九九乘法表
2016/02/22 Javascript
原生Javascript插件开发实践
2017/01/09 Javascript
vue动态组件实现选项卡切换效果
2017/03/08 Javascript
jquery网页加载进度条的实现
2017/06/01 jQuery
解决html input验证只能输入数字,不能输入其他的问题
2017/07/21 Javascript
[js高手之路]寄生组合式继承的优势详解
2017/08/28 Javascript
python对url格式解析的方法
2015/05/13 Python
python字符串编码识别模块chardet简单应用
2015/06/15 Python
Python中datetime常用时间处理方法
2015/06/15 Python
一篇文章入门Python生态系统(Python新手入门指导)
2015/12/11 Python
实例探究Python以并发方式编写高性能端口扫描器的方法
2016/06/14 Python
Python如何判断数独是否合法
2016/09/08 Python
详解Python 数据库 (sqlite3)应用
2016/12/07 Python
浅谈解除装饰器作用(python3新增)
2018/10/15 Python
如何更换python默认编辑器的背景色
2020/08/10 Python
Html5导航栏吸顶方案原理与对比实现
2020/06/10 HTML / CSS
全球性的奢侈品梦工厂:Forzieri(福喜利)
2019/02/20 全球购物
德国网上超市:myTime.de
2019/08/26 全球购物
师范学院毕业生求职信范文
2013/12/26 职场文书
卫生安全检查制度
2014/02/04 职场文书
小学生感恩演讲稿
2014/04/25 职场文书
青年志愿者先进事迹
2014/05/06 职场文书
考察现实表现材料
2014/05/19 职场文书
全国法制宣传日活动总结
2015/05/05 职场文书
Django cookie和session的应用场景及如何使用
2021/04/29 Python
聊聊SpringBoot自动装配的魔力
2021/11/17 Java/Android