在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文件和目录操作方法大全(含实例)
Mar 12 Python
Python中用于去除空格的三个函数的使用小结
Apr 07 Python
Python装饰器使用实例:验证参数合法性
Jun 24 Python
python把1变成01的步骤总结
Feb 27 Python
Python从函数参数类型引出元组实例分析
May 28 Python
Python爬虫实现“盗取”微信好友信息的方法分析
Sep 16 Python
python 字典有序并写入json文件过程解析
Sep 30 Python
pytorch dataloader 取batch_size时候出现bug的解决方式
Feb 20 Python
python网络编程之五子棋游戏
May 14 Python
django实现日志按日期分割
May 21 Python
如何通过python检查文件是否被占用
Dec 18 Python
Python基础之tkinter图形化界面学习
Apr 29 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
一个ubbcode的函数,速度很快.
2006/10/09 PHP
PHP 5.0 Pear安装方法
2006/12/06 PHP
PHP回调函数与匿名函数实例详解
2017/08/16 PHP
Mootools 1.2教程 输入过滤第二部分(字符串)
2009/09/15 Javascript
关闭页面window.location事件未执行的原因及解决方法
2014/09/01 Javascript
Javascript实现Web颜色值转换
2015/02/05 Javascript
jQuery实现仿美橙互联两级导航菜单的方法
2015/03/09 Javascript
JavaScript隐式类型转换
2016/03/15 Javascript
vue.js中指令Directives详解
2017/03/20 Javascript
从setTimeout看js函数执行过程
2017/12/19 Javascript
Angular4.0中引入laydate.js日期插件的方法教程
2017/12/25 Javascript
浅谈React + Webpack 构建打包优化
2018/01/23 Javascript
js中自定义react数据验证组件实例详解
2018/10/19 Javascript
如何制作一个Node命令行图像识别工具
2018/12/12 Javascript
koa+mongoose实现简单增删改查接口的示例代码
2019/05/13 Javascript
VUE渲染后端返回含有script标签的html字符串示例
2019/10/28 Javascript
vue-quill-editor插入图片路径太长问题解决方法
2021/01/08 Vue.js
Element-ui 自带的两种远程搜索(模糊查询)用法讲解
2021/01/29 Javascript
python生成指定长度的随机数密码
2014/01/23 Python
Python实现发送email的几种常用方法
2014/08/18 Python
Django中处理出错页面的方法
2015/07/15 Python
python中函数传参详解
2016/07/03 Python
Python标准库之collections包的使用教程
2017/04/27 Python
利用Python如何实现数据驱动的接口自动化测试
2018/05/11 Python
python数据爬下来保存的位置
2020/02/17 Python
使用PyCharm官方中文语言包汉化PyCharm
2020/11/18 Python
纯HTML5+CSS3制作生日蛋糕(代码易懂)
2016/11/16 HTML / CSS
与世界上最好的跑步专业品牌合作:Fleet Feet
2019/03/22 全球购物
华为智利官方商店:Huawei Chile
2020/05/09 全球购物
说一下mysql, oracle等常见数据库的分页实现方案
2012/09/29 面试题
Prototype是怎么扩展DOM的
2014/10/01 面试题
群众路线教育实践活动整改落实情况汇报
2014/10/28 职场文书
清明节网上祭英烈寄语2015
2015/03/04 职场文书
python实战之一步一步教你绘制小猪佩奇
2021/04/22 Python
Python列表删除重复元素与图像相似度判断及删除实例代码
2021/05/07 Python
一起来看看Vue的核心原理剖析
2022/03/24 Vue.js