在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实现的简单RPG游戏流程实例
Jun 28 Python
Python使用PDFMiner解析PDF代码实例
Mar 27 Python
Python IDLE入门简介
Dec 08 Python
linux下安装python3和对应的pip环境教程详解
Jul 01 Python
使用Python实现跳一跳自动跳跃功能
Jul 10 Python
Python argparse模块应用实例解析
Nov 15 Python
python实现飞机大战游戏(pygame版)
Oct 26 Python
python torch.utils.data.DataLoader使用方法
Apr 02 Python
简单了解python列表和元组的区别
May 14 Python
用python实现学生管理系统
Jul 24 Python
怎么解决pycharm license Acti的方法
Oct 28 Python
python实现文件+参数发送request的实例代码
Jan 05 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
实用函数9
2007/11/08 PHP
解析coreseek for sphinx的使用
2013/06/21 PHP
CentOS下PHP安装Oracle扩展
2015/02/15 PHP
PHP实现抓取迅雷VIP账号的方法
2015/07/30 PHP
学习PHP Cookie处理函数
2016/08/09 PHP
不错的一个日期输入 动态
2006/11/06 Javascript
IE下js调试工具Companion.JS
2010/10/15 Javascript
关于Ext中form移除textfield方法:hide(),setVisible(false),remove()
2010/12/02 Javascript
JS与C#编码解码
2013/12/03 Javascript
js验证电话号码与手机支持+86的正则表达式
2014/01/23 Javascript
下拉框select的绑定示例
2014/09/04 Javascript
js点击button按钮跳转到另一个新页面
2014/10/10 Javascript
Extjs4.0 ComboBox如何实现三级联动
2016/05/11 Javascript
Bootstrap基本组件学习笔记之分页(12)
2016/12/08 Javascript
微信小程序 实现动态显示和隐藏某个控件
2017/04/27 Javascript
利用纯JS实现像素逐渐显示的方法示例
2017/08/14 Javascript
浅谈NodeJs之数据库异常处理
2017/10/25 NodeJs
Vue的H5页面唤起支付宝支付功能
2019/04/18 Javascript
微信小程序导航栏跟随滑动效果的实现代码
2019/05/14 Javascript
[01:34]完美“圣”典宣传片震撼发布,12.17与你不见不散
2016/12/16 DOTA
python中assert用法实例分析
2015/04/30 Python
Windows安装Python、pip、easy_install的方法
2017/03/05 Python
使用Django Form解决表单数据无法动态刷新的两种方法
2017/07/14 Python
go和python变量赋值遇到的一个问题
2017/08/31 Python
Python3 批量扫描端口的例子
2019/07/25 Python
对Django url的几种使用方式详解
2019/08/06 Python
解决使用export_graphviz可视化树报错的问题
2019/08/09 Python
Django实现内容缓存实例方法
2020/06/30 Python
Abe’s of Maine:自1979以来销售相机和电子产品
2016/11/21 全球购物
JSF界面控制层技术
2013/06/17 面试题
社区八一活动方案
2014/02/03 职场文书
公务员试用期满考核材料
2014/05/22 职场文书
党的群众路线教育实践活动领导班子整改措施
2014/10/28 职场文书
2015年小学实验室工作总结
2015/07/28 职场文书
golang 在windows中设置环境变量的操作
2021/04/29 Golang
Go语言怎么使用变长参数函数
2022/07/15 Golang