在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实现在pickling的时候压缩的方法
Sep 25 Python
理解Python垃圾回收机制
Feb 12 Python
Python爬虫代理IP池实现方法
Jan 05 Python
python itchat实现微信自动回复的示例代码
Aug 14 Python
Python3之文件读写操作的实例讲解
Jan 23 Python
python 按照固定长度分割字符串的方法小结
Apr 30 Python
利用Python如何批量更新服务器文件
Jul 29 Python
pandas 透视表中文字段排序方法
Nov 16 Python
python实现石头剪刀布小游戏
Jan 20 Python
基于Python的自媒体小助手---登录页面的实现代码
Jun 29 Python
Pycharm学生免费专业版安装教程的方法步骤
Sep 24 Python
python向企业微信发送文字和图片消息的示例
Sep 28 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
我的论坛源代码(二)
2006/10/09 PHP
php中根据某年第几天计算出日期年月日的代码
2011/02/24 PHP
Yii实现显示静态页的方法
2016/04/25 PHP
如何直接访问php实例对象中的private属性详解
2017/10/12 PHP
php面向对象程序设计中self与static的区别分析
2019/05/21 PHP
非常不错的一个javascript 类
2006/11/07 Javascript
JS网络游戏-(模拟城市webgame)提供的一些例子下载
2007/10/14 Javascript
jQuery隔行变色与普通JS写法的对比
2013/04/21 Javascript
addEventListener 的用法示例介绍
2014/05/07 Javascript
js实现仿百度汽车频道选择汽车图片展示实例
2015/05/06 Javascript
使用Javascript写的2048小游戏
2015/11/25 Javascript
JS组件Bootstrap实现弹出框和提示框效果代码
2015/12/08 Javascript
JavaScript版经典游戏之扫雷游戏完整示例【附demo源码下载】
2016/12/12 Javascript
实现点击下箭头变上箭头来回切换的两种方法【推荐】
2016/12/14 Javascript
详解nuxt路由鉴权(express模板)
2018/11/21 Javascript
JavaScript页面加载事件实例讲解
2019/09/01 Javascript
vue-父子组件和ref实例详解
2019/11/10 Javascript
高性能js数组去重(12种方法,史上最全)
2019/12/21 Javascript
vue单应用在ios系统中实现微信分享功能操作
2020/09/07 Javascript
vue使用screenfull插件实现全屏功能
2020/09/17 Javascript
[02:16]2018年度CS GO最具人气选手-完美盛典
2018/12/16 DOTA
python解析基于xml格式的日志文件
2017/02/25 Python
Python实现的微信公众号群发图片与文本消息功能实例详解
2017/06/30 Python
TensorFlow安装及jupyter notebook配置方法
2017/09/08 Python
python 对key为时间的dict排序方法
2018/10/17 Python
Python利用scapy实现ARP欺骗的方法
2019/07/23 Python
Win10环境python3.7安装dlib模块趟过的坑
2019/08/01 Python
python实现生成Word、docx文件的方法分析
2019/08/30 Python
Python3并发写文件与Python对比
2019/11/20 Python
python FTP批量下载/删除/上传实例
2019/12/22 Python
在pytorch中对非叶节点的变量计算梯度实例
2020/01/10 Python
Python虚拟环境的创建和包下载过程分析
2020/06/19 Python
Python QTimer实现多线程及QSS应用过程解析
2020/07/11 Python
TripAdvisor日本:全球领先的旅游网站
2019/02/14 全球购物
工地安全标语
2014/06/07 职场文书
新员工考核评语
2014/12/31 职场文书