python批量修改檔名稱

2021-08-17 01:35:29 字數 1900 閱讀 2154

需求:將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 -*-

importre

string="a1.45,b5,6.45,8.82"

printre.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 看到他乙個個檔案重新命名,我也是 醉了 雖然做自動化測試的,但是比較少直接...