日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

Python脚本-批量修改文件名

發布時間:2025/3/15 python 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python脚本-批量修改文件名 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Notice1:os.listdir(path)

filenames = os.listdir(path) os.listdir() 方法用于返回指定的文件夾包含的文件或文件夾的名字的列表。這個列表以字母順序。 它不包括 '.' 和'..' 即使它在文件夾中。只支持在 Unix, Windows 下使用。
參數:path需要列出的目錄路徑
返回值:返回指定路徑下的文件和文件夾列表。

Notice2:re.compile?

p = re.compile(OldPartString) return p.sub(NewPartString,FullString)正則表達式是一個特殊的字符序列,它能幫助我們方便的檢查一個字符串是否與某種模式匹配。re 模塊使 Python 語言擁有全部的正則表達式功能。compile 函數根據一個模式字符串和可選的標志參數生成一個正則表達式對象。該對象擁有一系列方法用于正則表達式匹配和替換。 re.compile(pattern, flags=0)編譯正則表達式,返回RegexObject對象,然后可以通過RegexObject對象調用sub()方法。 re.sub(pattern, repl, string, count=0, flags=0)找到 RE 匹配的所有子串,并將其用一個不同的字符串替換。可選參數 count 是模式匹配後替換的最大次數;count 必須是非負整數。缺省值是 0 表示替換所有的匹配。如果無匹配,字符串將會無改變地返回。 相當于一個字符串中進行模式替換。

Notice3:cmp函數 os.rename

if cmp(filenames[n],ModifiedFilename):print ...os.rename(path+'\\'+filename[n],path+'\\'+ModifiedFilename)cmp(x,y) 函數用于比較2個對象,如果 x < y 返回 -1, 如果 x == y 返回 0, 如果 x > y 返回 1。 os.rename(src, dst);src -- 要修改的目錄名;dst -- 修改后的目錄名;該方法沒有返回值

Notice4:str.find()

str.find(str1, beg=0, end=len(string))str -- 指定檢索的字符串
beg -- 開始索引,默認為0。
end -- 結束索引,默認為字符串的長度。
find() 方法檢測字符串中是否包含子字符串 str 1,如果指定 beg(開始) 和 end(結束) 范圍,則檢查是否包含在指定范圍內,如果包含子字符串返回開始的索引值,否則返回-1。
NewNameInFile = re.sub(oldname,newname,OldNameInFile)
os.remove() ; open(file,'wb')
os.remove() 方法用于刪除指定路徑的文件。如果指定的路徑是一個目錄,將拋出OSError。在Unix, Windows中有效;
os.remove(path+'\\'+ModifiedFilename) f_w = open(path+'\\'+ModifiedFilename,'wb') f_w.write(NewNameInFile) f_w.close

Notice5:os.getcwd()

os.getcwd() 方法用于返回當前工作目錄。

Notice6:Upper()

upper() 方法將字符串中的小寫字母轉為大寫字母。

#!usr/bin/python import os, sys, re oldname="SZH" newname="LLSH" def MyReplace(FullString,OldPartString,NewPartString):p=re.compile (OldPartString)return p.sub(NewPartString,FullString)def MyFindcxxh(str):if str.find('.cxx')==-1 and str.find('.h')==-1 and str.find('.txt')==-1 and str.find('.ui')==-1 and str.find('.qrc')==-1:return -1else:return 1 def MyChangeName(path,oldname,newname):filenames=os.listdir(path)for n in xrange(len(filenames)):ModifiedFilename=MyReplace(filenames[n],oldname,newname)print filenames[n]print ModifiedFilenameif cmp(filenames[n],ModifiedFilename):print "from file... "+path+"\\"+filenames[n]+" to... "+ModifiedFilenameos.rename(path+'\\'+filenames[n],path+'\\'+ModifiedFilename) if MyFindcxxh(filenames[n])==1 :print 'have found cxx/h/txt...'OldNameInFile=open(path+'\\'+ModifiedFilename,'r').read()if OldNameInFile.find(oldname)>-1:print 'need replacing...'NewNameInFile = re.sub(oldname,newname,OldNameInFile)print "modifying the file of ..."+path+"\\"+filenames[n]+' contest...'+oldname+' is replaced by '+newnameos.remove(path+'\\'+ModifiedFilename)f_w=open(path+'\\'+ModifiedFilename,'wb')f_w.write(NewNameInFile)f_w.close()npath=path+"\\"+ModifiedFilenameif os.path.isdir(npath):MyChangeName(npath,oldname,newname)path=os.getcwd() MyChangeName(path,oldname,newname)

總結

以上是生活随笔為你收集整理的Python脚本-批量修改文件名的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。