簡體   English   中英

Python重命名目錄中的多個文件

[英]Python Renaming Multiple Files in Directory

初學者問題:我正在嘗試重命名目錄中的所有.xlsx文件。 我理解如何將字符串中的字符替換為另一個字符,但如何刪除? 更具體地說,我在目錄中有多個文件:0123_TEST_01,0456_TEST_02。 我試圖刪除文件名中的前綴,這將導致以下結果:TEST_01,TEST_02。

我試圖使用os.rename並將其拋入循環,但我不確定是否應該使用len()和一些數學來嘗試返回正確的命名約定。 以下代碼是我目前所處的位置。 如果這沒有意義,請告訴我。 謝謝。

import os
import shutil
import glob

src_files = os.listdir('C:/Users/acars/Desktop/b')

for file_name in src_files: 
       os.rename(fileName, filename.replace())

只需按下划線拆分文件名,忽略第一部分,然后再將其加入。

>>> file_name = '0123_TEST_01'

>>> '_'.join(file_name.split('_')[1:])
'TEST_01'

您的代碼將如下所示:

for file_name in src_files:
     os.rename(file_name, '_'.join(file_name.split('_')[1:]))

只需在下划線上拆分一次並使用第二個元素,glob也將為您找到所有xlsx文件返回完整路徑

from os import path, rename
from glob import glob

src_files = glob('C:/Users/acars/Desktop/b/*.xlsx')
pth = 'C:/Users/acars/Desktop/b/'

for file_name in src_files:         
    rename(file_name, path.join(pth, path.basename(file_name).split("_",1)[1])

如果您只有xlsx文件且未使用glob,則需要加入路徑:

from os import path, rename
from glob import glob


pth = 'C:/Users/acars/Desktop/b'
src_files = os.listdir(pth)

for file_name in src_files:
    new = file_name.split("_", 1)[1]
    file_name = path.join(pth, file_name)
    rename(file_name, path.join(pth, new))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM