在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中用pycurl监控http响应时间脚本分享
Feb 02 Python
Linux下使用python调用top命令获得CPU利用率
Mar 10 Python
利用Python绘制MySQL数据图实现数据可视化
Mar 30 Python
python 内置函数filter
Jun 01 Python
详解使用 pyenv 管理多个版本 python 环境
Oct 19 Python
详解python使用Nginx和uWSGI来运行Python应用
Jan 09 Python
Python 元类实例解析
Apr 04 Python
Python把csv数据写入list和字典类型的变量脚本方法
Jun 15 Python
pytorch 在sequential中使用view来reshape的例子
Aug 20 Python
python3.6使用SMTP协议发送邮件
May 20 Python
python 利用Pyinstaller打包Web项目
Oct 23 Python
Python实现批量将文件复制到新的目录中再修改名称
Apr 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
一首老MP3,致敬WAR3经典
2021/03/08 魔兽争霸
提问的智慧
2006/10/09 PHP
关于Appserv无法打开localhost问题的解决方法
2009/10/16 PHP
PHP多文件上传实例
2015/07/09 PHP
php实现批量删除挂马文件及批量替换页面内容完整实例
2016/07/08 PHP
php使用curl详细解析及问题汇总
2016/08/11 PHP
phpfpm的作用和用法
2019/10/10 PHP
用dom+xhtml+css制作的一个相册效果代码打包下载
2008/01/24 Javascript
javascript document.execCommand() 常用解析
2009/12/14 Javascript
Javascript UrlDecode函数代码
2010/01/09 Javascript
跨浏览器开发经验总结(三)   警惕“IE依赖综合症”
2010/05/13 Javascript
JavaScript实现页面实时显示当前时间的简单实例
2013/07/20 Javascript
Js可拖拽放大的层拖动特效实现方法
2015/02/25 Javascript
js实现的彩色方块飞舞奇幻效果
2016/01/27 Javascript
jQuery文本框得到与失去焦点动态改变样式效果
2016/09/08 Javascript
javascript实现简单的可随机变色网页计算器示例
2016/12/30 Javascript
jQuery实现最简单实用的分秒倒计时
2017/02/05 Javascript
JS+canvas动态绘制饼图的方法示例
2017/09/12 Javascript
详解bootstrap用dropdown-menu实现上下文菜单
2017/09/22 Javascript
jQuery访问浏览器本地存储cookie、localStorage和sessionStorage的基本用法
2017/10/20 jQuery
js实现手机web图片左右滑动效果
2017/12/29 Javascript
详解React中传入组件的props改变时更新组件的几种实现方法
2018/09/13 Javascript
[43:43]完美世界DOTA2联赛PWL S2 LBZS vs Forest 第三场 11.29
2020/12/02 DOTA
python实现SMTP邮件发送功能
2020/06/16 Python
深入了解Python数据类型之列表
2016/06/24 Python
Python 多线程Threading初学教程
2017/08/22 Python
python读取txt文件,去掉空格计算每行长度的方法
2018/12/20 Python
Django Rest framework解析器和渲染器详解
2019/07/25 Python
简单瞅瞅Python vars()内置函数的实现
2019/09/27 Python
win10环境下配置vscode python开发环境的教程详解
2019/10/16 Python
浅谈Pycharm的项目文件名是红色的原因及解决方式
2020/06/01 Python
CSS3中background-clip和background-origin的区别示例介绍
2014/03/10 HTML / CSS
HTML5 History API 实现无刷新跳转
2016/01/11 HTML / CSS
新加坡网上化妆品店:Best Buy World
2018/05/18 全球购物
学习党的群众路线教育实践活动心得体会
2014/03/01 职场文书
学习《中小学教师职业道德规范》心得体会
2016/01/18 职场文书