在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中函数的参数传递与可变长参数介绍
Jun 30 Python
Python打包文件夹的方法小结(zip,tar,tar.gz等)
Sep 18 Python
Python的时间模块datetime详解
Apr 17 Python
python逆序打印各位数字的方法
Jun 25 Python
Python中那些 Pythonic的写法详解
Jul 02 Python
python选取特定列 pandas iloc,loc,icol的使用详解(列切片及行切片)
Aug 06 Python
如何基于Python实现自动扫雷
Jan 06 Python
python中如何使用insert函数
Jan 09 Python
Keras 切换后端方式(Theano和TensorFlow)
Jun 19 Python
python matplotlib库的基本使用
Sep 23 Python
基于Python的图像阈值化分割(迭代法)
Nov 20 Python
Python破解极验滑动验证码详细步骤
May 21 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
一个用php3编写的简单计数器
2006/10/09 PHP
php 一元分词算法
2009/11/30 PHP
Laravel自定义 封装便捷返回Json数据格式的引用方法
2019/09/29 PHP
总结一些js自定义的函数
2006/08/05 Javascript
jQuery实现表单input中提示文字value随鼠标焦点移进移出而显示或隐藏的代码
2010/03/21 Javascript
js和jquery批量绑定事件传参数一(新猪猪原创)
2010/06/23 Javascript
JS小功能(setInterval实现图片效果显示时间)实例代码
2013/11/28 Javascript
把字符串按照特定的字母顺序进行排序的js代码
2014/01/28 Javascript
简单的jquery左侧导航栏和页面选中效果
2014/08/21 Javascript
jquery序列化方法实例分析
2015/06/10 Javascript
Jquery实现$.fn.extend和$.extend函数
2016/04/14 Javascript
简单谈谈Vue 模板各类数据绑定
2016/09/25 Javascript
JS实现含有中文字符串的友好截取功能分析
2017/03/13 Javascript
JavaScript实现body内任意节点的自定义属性功能示例
2017/09/18 Javascript
VUE前端cookie简单操作
2017/10/17 Javascript
js实现简单的秒表
2020/01/16 Javascript
js实现简单的贪吃蛇游戏
2020/04/23 Javascript
解决vue+elementui项目打包后样式变化问题
2020/08/03 Javascript
[56:41]iG vs Winstrike 2018国际邀请赛小组赛BO2 第二场
2018/08/17 DOTA
[01:01:41]DOTA2-DPC中国联赛 正赛 PSG.LGD vs Magma BO3 第二场 1月31日
2021/03/11 DOTA
python实现的登陆Discuz!论坛通用代码分享
2014/07/11 Python
如何在Python函数执行前后增加额外的行为
2016/10/20 Python
详解numpy的argmax的具体使用
2019/05/27 Python
Django 迁移、操作数据库的方法
2019/08/02 Python
python利用opencv实现SIFT特征提取与匹配
2020/03/05 Python
Python通过递归函数输出嵌套列表元素
2020/10/15 Python
Lenox官网:精美的瓷器&独特的礼品
2017/02/12 全球购物
英国的一家创新礼品和小工具零售商:Menkind
2019/08/24 全球购物
化工机械应届生求职信
2013/11/04 职场文书
文秘人员工作职责
2014/01/31 职场文书
写给老婆的检讨书
2014/02/21 职场文书
置业顾问岗位职责
2014/03/02 职场文书
谢师宴家长答谢词
2015/09/30 职场文书
法制教育讲座心得体会
2016/01/14 职场文书
python-for x in range的用法(注意要点、细节)
2021/05/10 Python
Mysql中 unique列插入重复值该怎么解决呢
2021/05/26 MySQL