在Python中過(guò)濾Windows文件名中的非法字符方法
網(wǎng)上有三種寫(xiě)法:
第一種(所有非法字符都不轉(zhuǎn)義):
def setFileTitle(self,title): fileName = re.sub('[\/:*?"<>|]','-',title)#去掉非法字符 self.file = open(fileName + ".txt","w+")
\非法字符必須轉(zhuǎn)義,否則\/被解釋為/
第二種(所有非法字符都轉(zhuǎn)義):
def validateTitle(title): rstr = r"[\/\\\:\*\?\"\<\>\|]" # '/ \ : * ? " < > |' new_title = re.sub(rstr, "_", title) # 替換為下劃線(xiàn) return new_title
第三種(部分非法字符轉(zhuǎn)義):
private static Pattern FilePattern = Pattern.compile("[\\\\/:*?\"<>|]"); public static String filenameFilter(String str) { return str==null?null:FilePattern.matcher(str).replaceAll(""); }
最佳寫(xiě)法:
pattern=r'[\\/:*?"<>|\r\n]+'
在[]中*不需要轉(zhuǎn)義,此時(shí)*不表示多次匹配,就表示本身的字符
注意
文件夾名和文件名的字串中可以包含不是26個(gè)字母和數(shù)字的特殊字符,例如“┽┾┿╀╂╁╃ ”這個(gè)字串是可以命名成功的的,另一方面文件名首尾的空格要去掉,首尾的點(diǎn)號(hào)要去掉,特殊的空白符(如換行符和制表符)也要去掉。
python中strip(),lstrip(),rstrip()可以取出兩端的某些特殊的字符。
以上這篇在Python中過(guò)濾Windows文件名中的非法字符方法就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- python查找特定名稱(chēng)文件并按序號(hào)、文件名分行打印輸出的方法
- python根據(jù)完整路徑獲得盤(pán)名/路徑名/文件名/文件擴(kuò)展名的方法
- python實(shí)現(xiàn)批量修改文件名
- python 獲取當(dāng)前目錄下的文件目錄和文件名實(shí)例代碼詳解
- 使用Python解決Windows文件名非用反斜杠問(wèn)題(python 小技巧)
- python批量讀取文件名并寫(xiě)入txt文件中
- python根據(jù)多個(gè)文件名批量查找文件
- 對(duì)Python 檢查文件名是否規(guī)范的實(shí)例詳解
- Python打印不合法的文件名
相關(guān)文章
Pandas探索之高性能函數(shù)eval和query解析
這篇文章主要介紹了Pandas探索之高性能函數(shù)eval和query解析,小編覺(jué)得還是挺不錯(cuò)的,這里分享給大家,供需要的朋友參考。2017-10-10淺談tensorflow使用張量時(shí)的一些注意點(diǎn)tf.concat,tf.reshape,tf.stack
這篇文章主要介紹了淺談tensorflow使用張量時(shí)的一些注意點(diǎn)tf.concat,tf.reshape,tf.stack,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-06-06Python中線(xiàn)程threading.Thread的使用詳解
python的thread模塊是比較底層的模塊,python的threading模塊是對(duì)thread做了一些包裝的,可以更加方便的被使用。本文將為大家詳細(xì)介紹一下python中的線(xiàn)程threading.Thread()的使用,需要的可以參考一下2022-07-07python函數(shù)中將變量名轉(zhuǎn)換成字符串實(shí)例
這篇文章主要介紹了python函數(shù)中將變量名轉(zhuǎn)換成字符串實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-05-05python3調(diào)用windows dos命令的例子
今天小編就為大家分享一篇python3調(diào)用windows dos命令的例子,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-08-08python初學(xué)之用戶(hù)登錄的實(shí)現(xiàn)過(guò)程(實(shí)例講解)
下面小編就為大家分享一篇python初學(xué)之用戶(hù)登錄的實(shí)現(xiàn)過(guò)程(實(shí)例講解),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2017-12-12Python實(shí)現(xiàn)將16進(jìn)制字符串轉(zhuǎn)化為ascii字符的方法分析
這篇文章主要介紹了Python實(shí)現(xiàn)將16進(jìn)制字符串轉(zhuǎn)化為ascii字符的方法,結(jié)合實(shí)例形式分析了Python 16進(jìn)制字符串轉(zhuǎn)換為ascii字符的實(shí)現(xiàn)方法與相關(guān)注意事項(xiàng),需要的朋友可以參考下2017-07-07Python編程實(shí)現(xiàn)雙鏈表,棧,隊(duì)列及二叉樹(shù)的方法示例
這篇文章主要介紹了Python編程實(shí)現(xiàn)雙鏈表,棧,隊(duì)列及二叉樹(shù)的方法,結(jié)合具體實(shí)例形式分析了Python簡(jiǎn)單實(shí)現(xiàn)數(shù)據(jù)結(jié)構(gòu)中雙鏈表,棧,隊(duì)列及二叉樹(shù)相關(guān)操作技巧,需要的朋友可以參考下2017-11-11