在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 字符串split的用法分享
Mar 23 Python
本地文件上传到七牛云服务器示例(七牛云存储)
Jan 11 Python
教你如何将 Sublime 3 打造成 Python/Django IDE开发利器
Jul 04 Python
Python使用urllib2模块实现断点续传下载的方法
Jun 17 Python
python if not in 多条件判断代码
Sep 21 Python
Python爬虫之模拟知乎登录的方法教程
May 25 Python
Python中如何优雅的合并两个字典(dict)方法示例
Aug 09 Python
Python实现爬虫设置代理IP和伪装成浏览器的方法分享
May 07 Python
Python使用add_subplot与subplot画子图操作示例
Jun 01 Python
Python Pandas中根据列的值选取多行数据
Jul 08 Python
浅谈python 中的 type(), dtype(), astype()的区别
Apr 09 Python
解决python脚本中error: unrecognized arguments: True错误
Apr 20 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批量查询WordPress留言者E-mail地址实现方法
2015/02/15 PHP
php curl模拟post请求和提交多维数组的示例代码
2015/11/19 PHP
PHP Try-catch 语句使用技巧
2016/02/28 PHP
PHP基于redis计数器类定义与用法示例
2018/02/08 PHP
php实现大文件断点续传下载实例代码
2019/10/01 PHP
重定向实现代码
2006/11/20 Javascript
CSDN轮换广告图片轮换效果
2007/03/27 Javascript
替代window.event.srcElement效果的可兼容性的函数
2009/12/18 Javascript
Javascript学习笔记 delete运算符
2011/09/13 Javascript
jQuery 瀑布流 绝对定位布局(二)(延迟AJAX加载图片)
2012/05/23 Javascript
jquery入门——事件机制之事件中的冒泡现象示例解释
2020/09/12 Javascript
javascript数组快速打乱重排的方法
2014/01/02 Javascript
JS得到当前时间的方法示例
2017/03/24 Javascript
element-ui带输入建议的input框踩坑(输入建议空白以及会闪出上一次的输入建议问题)
2019/01/15 Javascript
babel7.x和webpack4.x配置vue项目的方法步骤
2019/05/12 Javascript
微信小程序模板消息限制实现无限制主动推送的示例代码
2019/08/27 Javascript
JavaScript ECMA-262-3 深入解析(二):变量对象实例详解
2020/04/25 Javascript
前端性能优化建议
2020/09/17 Javascript
vue实现图书管理系统
2020/12/29 Vue.js
Python爬取网易云音乐上评论火爆的歌曲
2017/01/19 Python
python爬取哈尔滨天气信息
2018/07/14 Python
python 同时运行多个程序的实例
2019/01/07 Python
使用python实现unix2dos和dos2unix命令的例子
2019/08/13 Python
Python爬虫JSON及JSONPath运行原理详解
2020/06/04 Python
Python爬取微信小程序Charles实现过程图解
2020/09/29 Python
css3绘制天猫logo实现代码
2012/11/06 HTML / CSS
如何查看浏览器对html5的支持情况
2020/12/15 HTML / CSS
澳大利亚正品化妆品之家:Cosmetic Capital
2017/07/03 全球购物
Chain Reaction Cycles芬兰:世界上最大的在线自行车商店
2017/12/06 全球购物
Weblogic和WebSphere不同特点
2012/05/09 面试题
三月法制宣传月活动总结
2014/07/03 职场文书
欢迎词怎么写
2015/01/23 职场文书
2015年社区矫正工作总结
2015/04/21 职场文书
运动会加油稿50字
2015/07/21 职场文书
关于应聘教师的自荐信
2016/01/28 职场文书
PHP判断是否是json字符串
2021/04/01 PHP