在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实现的扫雷游戏实例代码
Aug 01 Python
Python安装模块的常见问题及解决方法
Feb 05 Python
Tensorflow实现卷积神经网络用于人脸关键点识别
Mar 05 Python
python如何把嵌套列表转变成普通列表
Mar 20 Python
Linux下多个Python版本安装教程
Aug 15 Python
python实现弹窗祝福效果
Apr 07 Python
Python读取xlsx文件的实现方法
Jul 04 Python
python操作cfg配置文件方式
Dec 22 Python
如何使用Cython对python代码进行加密
Jul 08 Python
python 浮点数四舍五入需要注意的地方
Aug 18 Python
Pytorch实现WGAN用于动漫头像生成
Mar 04 Python
pytorch通过训练结果的复现设置随机种子
Jun 01 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
后宫无数却洁身自好的男主,唐三只爱小舞
2020/03/02 国漫
【动漫杂谈】关于《请在T台上微笑》
2020/03/03 日漫
php Xdebug的安装与使用详解
2013/06/20 PHP
异步加载技术实现当滚动条到最底部的瀑布流效果
2014/09/16 PHP
WordPress迁移时一些常见问题的解决方法整理
2015/11/24 PHP
Yii2 rbac权限控制之菜单menu实例教程
2016/04/28 PHP
PDO::lastInsertId讲解
2019/01/29 PHP
JavaScript 对象、函数和继承
2009/07/07 Javascript
javascript学习笔记(六) Date 日期类型
2012/06/19 Javascript
jQuery Pagination Ajax分页插件(分页切换时无刷新与延迟)中文翻译版
2013/01/11 Javascript
Javascript实现检测客户端类型代码封包
2015/12/03 Javascript
Knockoutjs 学习系列(一)ko初体验
2016/06/07 Javascript
深入理解Angularjs中的$resource服务
2016/12/31 Javascript
浅谈jquery拼接字符串效率比较高的方法
2017/02/22 Javascript
解决vue打包项目后刷新404的问题
2018/03/06 Javascript
Vue 进阶之路(三)
2019/04/18 Javascript
微信小程序开发之左右分栏效果的实例代码
2019/05/20 Javascript
JS实现在线ps功能详解
2019/07/31 Javascript
jquery轻量级数字动画插件countUp.js使用详解
2019/10/17 jQuery
Javascript执行流程细节原理解析
2020/05/14 Javascript
vue select 获取value和lable操作
2020/08/28 Javascript
Python函数学习笔记
2008/10/07 Python
Python中for循环控制语句用法实例
2015/06/02 Python
Python语法快速入门指南
2015/10/12 Python
Python中文件的写入读取以及附加文字方法
2019/01/23 Python
Pandas统计重复的列里面的值方法
2019/01/30 Python
Python爬取YY评级分数并保存数据实现过程解析
2020/06/01 Python
Python try except else使用详解
2021/01/12 Python
Python中正则表达式对单个字符,多个字符和匹配边界等使用
2021/01/27 Python
HTML5高仿微信聊天、微信聊天表情|对话框|编辑器功能
2018/04/23 HTML / CSS
请假条标准格式规范
2014/04/10 职场文书
省级青年文明号申报材料
2014/05/23 职场文书
户籍证明模板
2014/09/28 职场文书
2014年管理工作总结
2014/11/22 职场文书
趣味运动会开幕词
2015/01/28 职场文书
读书笔记格式
2015/07/02 职场文书