需求:將bak目錄下的所有test(*).jpg檔案改為test*.jpg
例如:test(1).jpg檔案修改為test1.jpg
#!/usr/bin/python
#coding:utf-8
import os
import re
movie_name = os.listdir('./bak')
for temp in movie_name:
i = re.findall(r"\d+\.?\d*",temp)[0]
new_name = 'test' + str(i) + '.xml'
os.rename('./bak/'+temp,'./bak/'+new_name)
然後執行該指令碼檔案即可達到修改目的。
使用正規表示式,用法如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
## 總結
## ^ 匹配字串的開始。
## $ 匹配字串的結尾。
## \b 匹配乙個單詞的邊界。
## \d 匹配任意數字。
## \d 匹配任意非數字字元。
## x? 匹配乙個可選的 x 字元 (換言之,它匹配 1 次或者 0 次 x 字元)。
## x* 匹配0次或者多次 x 字元。
## x+ 匹配1次或者多次 x 字元。
## x 匹配 x 字元,至少 n 次,至多 m 次。
## (a|b|c) 要麼匹配 a,要麼匹配 b,要麼匹配 c。
## (x) 一般情況下表示乙個記憶組 (remembered group)。你可以利用 re.search 函式返回物件的 groups() 函式獲取它的值。
## 正規表示式中的點號通常意味著 「匹配任意單字元」
解題思路:
2.1 既然是提取數字,那麼數字的形式一般是:整數,小數,整數加小數;
2.2 所以一般是形如:----.-----;
2.3 根據上述正規表示式的含義,可寫出如下的表示式:"\d+\.?\d*";
2.4 \d+匹配1次或者多次數字,注意這裡不要寫成*,因為即便是小數,小數點之前也得有乙個數字;\.?這個是匹配小數點的,可能有,也可能沒有;\d*這個是匹配小數點之後的數字的,所以是0個或者多個;
**如下:
1
2
3
4
5
6
7
# -*- coding: cp936 -*-
import
re
string
=
"a1.45,b5,6.45,8.82"
print
re.findall(r
"\d+\.?\d*"
,string)
# ['1.45', '5', '6.45', '8.82']
python 批量修改檔名稱
1.第一步 該目錄下必須是一系列有規律的檔名稱,比如 說西遊記第一集,西遊就第二集等 這樣的檔名稱 2 第二步 然後要對檔案進行批量修改,那麼批量修改就是使用迴圈的方式對有規律的檔名稱進行修改 3 第三步 然後我們要拿到這個目錄檔案下的所有檔名稱,所有就要使用os模組下的 listdir 函式來獲取...
批量修改檔名稱(Python)
本程式功能 批量修改檔名稱 import os import re def replacedirname rootdir 修改rootdir路徑下的資料夾名 num 0 dirs os.listdir rootdir for dir in dirs print oldname is dir 輸出老的...
Python 批量修改檔名稱
dr.he 最近忙著畢業 的事情,需要將一千多張超聲切面圖的檔名字尾名去掉,例如 剔除檔名 1802014223famfibai.jpg 的第11個字元至第18個字元 famfibai 新檔名稱 1802014223.jpg 看到他乙個個檔案重新命名,我也是 醉了 雖然做自動化測試的,但是比較少直接...