在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使用PyGame播放Midi和Mp3文件的方法
Apr 24 Python
python脚本内运行linux命令的方法
Jul 02 Python
Python3解决棋盘覆盖问题的方法示例
Dec 07 Python
django认证系统实现自定义权限管理的方法
Jul 16 Python
Python字符串、整数、和浮点型数相互转换实例
Aug 04 Python
详解python 爬取12306验证码
May 10 Python
Pycharm运行加载文本出现错误的解决方法
Jun 27 Python
django queryset 去重 .distinct()说明
May 19 Python
Java byte数组操纵方式代码实例解析
Jul 22 Python
用python获取txt文件中关键字的数量
Dec 24 Python
python Pexpect模块的使用
Dec 25 Python
Django 如何实现文件上传下载
Apr 08 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
全局记录程序片段的运行时间 正确找到程序逻辑耗时多的断点
2011/01/06 PHP
工厂模式在Zend Framework中应用介绍
2012/07/10 PHP
根据ip调用新浪api获取城市名并转成拼音
2014/03/07 PHP
php实现改变图片直接打开为下载的方法
2015/04/14 PHP
浅析PHP中的i++与++i的区别及效率
2016/06/15 PHP
php连接微软MSSQL(sql server)完全攻略
2016/11/27 PHP
Javascript 文件夹选择框的两种解决方案
2009/07/01 Javascript
Jquery数独游戏解析(一)-页面布局
2010/11/05 Javascript
js 遍历对象的属性的代码
2011/12/29 Javascript
浅谈Javascript鼠标和滚轮事件
2012/06/27 Javascript
谈谈关于JavaScript 中的 MVC 模式
2013/04/11 Javascript
JavaScript字符串对象split方法入门实例(用于把字符串分割成数组)
2014/10/16 Javascript
AngularJS入门教程(零):引导程序
2014/12/06 Javascript
使用AOP改善javascript代码
2015/05/01 Javascript
Javascript实现的Map集合工具类完整实例
2015/07/31 Javascript
Vue2.0表单校验组件vee-validate的使用详解
2017/05/02 Javascript
js实现股票实时刷新数据案例
2017/05/14 Javascript
js中let和var定义变量的区别
2018/02/08 Javascript
微信小程序wx.uploadfile 本地文件转base64的实现代码
2018/06/28 Javascript
深入解析koa之异步回调处理
2019/06/17 Javascript
vue 添加和编辑用同一个表单,el-form表单提交后清空表单数据操作
2020/08/03 Javascript
Python的GUI框架PySide的安装配置教程
2016/02/16 Python
对numpy中布尔型数组的处理方法详解
2018/04/17 Python
Python基于滑动平均思想实现缺失数据填充的方法
2019/02/21 Python
如何使用python3获取当前路径及os.path.dirname的使用
2019/12/13 Python
Python利用多线程同步锁实现多窗口订票系统(推荐)
2019/12/22 Python
Origins悦木之源香港官网:雅诗兰黛集团高端植物护肤品牌
2018/03/21 全球购物
GWT (Google Web Toolkit)有哪些主要的原件组成?
2015/06/08 面试题
中英文自我评价常用句型
2013/12/19 职场文书
警示教育活动总结
2014/05/05 职场文书
服务标语大全
2014/06/18 职场文书
父亲节活动总结
2015/02/12 职场文书
上课讲话检讨书范文
2015/05/07 职场文书
2015年客房服务员工作总结
2015/05/15 职场文书
汤姆索亚历险记读书笔记
2015/06/29 职场文书
看完这篇文章获得一些java if优化技巧
2021/07/15 Java/Android