在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实现异步回调机制代码分享
Jan 10 Python
Python实现对比不同字体中的同一字符的显示效果
Apr 23 Python
Python遍历指定文件及文件夹的方法
May 09 Python
详解Python中的Descriptor描述符类
Jun 14 Python
python-opencv在有噪音的情况下提取图像的轮廓实例
Aug 30 Python
Zookeeper接口kazoo实例解析
Jan 22 Python
python实现自动发送邮件发送多人、群发、多附件的示例
Jan 23 Python
Python 中导入csv数据的三种方法
Nov 01 Python
基于wxPython的GUI实现输入对话框(1)
Feb 27 Python
Django框架验证码用法实例分析
May 10 Python
python爬虫 urllib模块发起post请求过程解析
Aug 20 Python
Python识别验证码的实现示例
Sep 30 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文件缓存内容保存格式实例分析
2014/08/20 PHP
PHP数据库操作三:redis用法分析
2017/08/16 PHP
javascript打开新窗口同时关闭旧窗口
2009/01/16 Javascript
广告切换效果(缓动切换)
2009/05/27 Javascript
javascript tips提示框组件实现代码
2010/11/19 Javascript
分享20多个很棒的jQuery 文件上传插件或教程
2011/09/04 Javascript
javascript删除数组元素并且数组长度减小的简单实例
2014/02/14 Javascript
jQuery数据缓存用法分析
2015/02/20 Javascript
AngularJS 实现按需异步加载实例代码
2015/10/18 Javascript
javascript:void(0)点击登录没反应怎么解决
2015/11/13 Javascript
JS判断字符串变量是否含有某个字串的实现方法
2016/06/03 Javascript
JS实现的简易拖放效果示例
2016/12/29 Javascript
微信小程序 开发经验整理
2017/02/15 Javascript
JS传参及动态修改页面布局
2017/04/13 Javascript
浅谈angularjs中响应回车事件
2017/04/24 Javascript
详解webpack 入门与解析
2018/04/09 Javascript
Bootstrap 模态框自定义点击和关闭事件详解
2018/08/10 Javascript
[01:04:01]2014 DOTA2华西杯精英邀请赛5 24 DK VS VG
2014/05/25 DOTA
[02:17]2016完美“圣”典风云人物:Sccc专访
2016/12/03 DOTA
python基础教程之序列详解
2014/08/29 Python
Python和C/C++交互的几种方法总结
2017/05/11 Python
Python+Socket实现基于TCP协议的客户与服务端中文自动回复聊天功能示例
2017/08/31 Python
Python cookbook(数据结构与算法)通过公共键对字典列表排序算法示例
2018/03/15 Python
一文秒懂python读写csv xml json文件各种骚操作
2019/07/04 Python
Django如何实现密码错误报错提醒
2020/09/04 Python
网友共享的几个面试题关于Java和Unix等方面的
2016/09/08 面试题
介绍一下JMS编程步骤
2015/09/22 面试题
就业推荐表自我鉴定
2013/10/29 职场文书
大学在校生求职信范文
2013/11/21 职场文书
护士求职自荐信范文
2014/03/19 职场文书
终止或解除劳动合同及劳动关系的证明书
2014/10/06 职场文书
创先争优个人总结
2015/03/04 职场文书
《跨越海峡的生命桥》教学反思
2016/02/18 职场文书
3招让你摆脱即兴讲话冷场尴尬
2019/08/08 职场文书
Java内存模型之happens-before概念详解
2021/06/13 Java/Android
Nginx配置根据url参数重定向
2022/04/11 Servers