在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 04 Python
Python中的连接符(+、+=)示例详解
Jan 13 Python
python3中set(集合)的语法总结分享
Mar 24 Python
Python使用matplotlib绘制随机漫步图
Aug 27 Python
简单了解python gevent 协程使用及作用
Jul 22 Python
python开头的coding设置方法
Aug 08 Python
python标准库sys和OS的函数使用方法与实例详解
Feb 12 Python
在python中logger setlevel没有生效的解决
Feb 21 Python
Python加速程序运行的方法
Jul 29 Python
Python自动巡检H3C交换机实现过程解析
Aug 14 Python
深入分析python 排序
Aug 24 Python
社区版pycharm创建django项目的方法(pycharm的newproject左侧没有项目选项)
Sep 23 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数组查找函数总结
2014/11/18 PHP
thinkphp5.0自定义验证规则使用方法
2017/11/16 PHP
PHP精确到毫秒秒杀倒计时实例详解
2019/03/14 PHP
JS宝典学习笔记(下)
2007/01/10 Javascript
javascript 面向对象全新理练之原型继承
2009/12/03 Javascript
javascript中最常用的继承模式 组合继承
2010/08/12 Javascript
php对mongodb的扩展(小试牛刀)
2012/11/11 Javascript
Egret引擎开发指南之视觉编程
2014/09/03 Javascript
浅谈JS使用[ ]来访问对象属性
2016/09/21 Javascript
js实现手机拍照上传功能
2017/01/17 Javascript
浅谈jQuery中事情的动态绑定
2017/02/12 Javascript
用jquery获取select标签中选中的option值及文本的示例
2018/01/25 jQuery
微信小程序实现倒计时调用相机自动拍照功能
2018/06/10 Javascript
vue路由守卫及路由守卫无限循环问题详析
2019/09/05 Javascript
Vue项目中如何使用Axios封装http请求详解
2019/10/23 Javascript
通过Kettle自定义jar包供javascript使用
2020/01/29 Javascript
JS call()及apply()方法使用实例汇总
2020/07/11 Javascript
[38:41]2014 DOTA2国际邀请赛中国区预选赛 LGD VS CNB
2014/05/22 DOTA
github配置使用指南
2014/11/18 Python
python中Flask框架简单入门实例
2015/03/21 Python
python实现数独游戏 java简单实现数独游戏
2018/03/30 Python
Python参数解析模块sys、getopt、argparse使用与对比分析
2019/04/02 Python
选购世界上最好的美妆品:Cult Beauty
2017/11/03 全球购物
求职自荐信
2013/12/14 职场文书
劳资人员岗位职责
2013/12/19 职场文书
土建资料员岗位职责
2014/01/04 职场文书
学生手册家长评语
2014/02/10 职场文书
我们的节日端午节活动方案
2014/03/02 职场文书
2014小学植树节活动总结
2014/03/10 职场文书
拓展训练激励口号
2014/06/17 职场文书
县政府办公室领导班子对照检查材料思想汇报
2014/09/28 职场文书
z-index不起作用
2021/03/31 HTML / CSS
MySQL Threads_running飙升与慢查询的相关问题解决
2021/05/08 MySQL
利用Sharding-Jdbc进行分库分表的操作代码
2022/01/22 Java/Android
Java8 Stream API 提供了一种高效且易于使用的处理数据的方式
2022/04/13 Java/Android
带你了解Java中的ForkJoin
2022/04/28 Java/Android