在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 字符串与二进制串的相互转换示例
Jul 23 Python
CentOS7下python3.7.0安装教程
Jul 30 Python
基于Django的乐观锁与悲观锁解决订单并发问题详解
Jul 31 Python
python爬虫解决验证码的思路及示例
Aug 01 Python
Django配置MySQL数据库的完整步骤
Sep 07 Python
使用Python制作一个打字训练小工具
Oct 01 Python
python操作gitlab API过程解析
Dec 27 Python
python数据库编程 ODBC方式实现通讯录
Mar 27 Python
Django中ORM的基本使用教程
Dec 22 Python
python中最小二乘法详细讲解
Feb 19 Python
Python实现智慧校园自动评教全新版
Jun 18 Python
详解Python函数print用法
Jun 18 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中用memcached实现页面防刷新功能
2014/08/19 PHP
Thinkphp5 微信公众号token验证不成功的原因及解决方法
2017/11/12 PHP
PHP自定义函数实现assign()数组分配到模板及extract()变量分配到模板功能示例
2018/05/23 PHP
javascript 命名规则 变量命名规则
2010/02/25 Javascript
jquery随机展示头像代码
2011/12/21 Javascript
js 有框架页面跳转(target)三种情况下的应用
2013/04/09 Javascript
让复选框只能选择一项的方法
2013/10/08 Javascript
Jquery 获取对象的几种方式介绍
2014/01/17 Javascript
JavaScript中奇葩的假值示例应用
2014/03/11 Javascript
javascript限制文本框输入值类型的方法
2015/05/07 Javascript
jQuery网页右侧广告跟随滚动代码分享
2020/04/20 Javascript
js 实现一些跨浏览器的事件方法详解及实例
2016/10/27 Javascript
Angular路由简单学习
2016/12/26 Javascript
微信小程序url传参写变量的方法
2018/08/09 Javascript
jQuery实现的页面弹幕效果【测试可用】
2018/08/17 jQuery
vue axios数据请求及vue中使用axios的方法
2018/09/10 Javascript
JS面向对象编程——ES6 中class的继承用法详解
2020/03/03 Javascript
Vue中keep-alive组件的深入理解
2020/08/23 Javascript
在vue中通过render函数给子组件设置ref操作
2020/11/17 Vue.js
Python中用于转换字母为小写的lower()方法使用简介
2015/05/19 Python
Pythont特殊语法filter,map,reduce,apply使用方法
2016/02/27 Python
解决Python pandas df 写入excel 出现的问题
2018/07/04 Python
Python 加密与解密小结
2018/12/06 Python
将string类型的数据类型转换为spark rdd时报错的解决方法
2019/02/18 Python
pycharm 2020.2.4 pip install Flask 报错 Error:Non-zero exit code的问题
2020/12/04 Python
python定义具名元组实例操作
2021/02/28 Python
解决Python import .pyd 可能遇到路径的问题
2021/03/04 Python
AmazeUI 列表的实现示例
2020/08/17 HTML / CSS
爷爷追悼会答谢词
2014/01/24 职场文书
《彩色世界》教学反思
2014/04/12 职场文书
六一儿童节活动总结
2014/08/27 职场文书
民主评议党员自我评价材料
2014/09/18 职场文书
西安大雁塔导游词
2015/02/10 职场文书
滴水洞导游词
2015/02/10 职场文书
2016年第104个国际护士节活动总结
2016/04/06 职场文书
MySQL常用慢查询分析工具详解
2022/08/14 MySQL