[英]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.