使用python對文件名進(jìn)行批量修改(二)2020-06-08---刪除指定字符串

本文接上一篇使用python對文件名進(jìn)行批量修改2020-04-24待續(xù)內(nèi)容,主要介紹如何刪除文件名前綴及后綴,方法為基于lstrip()和partition()函數(shù)的實現(xiàn)。

1. 問題描述

現(xiàn)實問題

 某些形如”www.cn-ki.net_基于大數(shù)據(jù)的xxx構(gòu)建方法.pdf”(1) 和 "基于大數(shù)據(jù)的xxx構(gòu)建方法_張三.pdf“ 、"xxx問題研究_李四.pdf“ (2)的文檔不便于管理和檢索。故此,本文的目標(biāo)是去除文件名中的冗余部分。

需解決的核心問題:

(1)刪除文件名前綴; 如www.cn-ki.net_”。
(2)刪除指定字符之后的內(nèi)容;如”_張三““_李四””_Mike“等。

2.所需函數(shù)說明

(1)刪除前綴函數(shù)str.lstrip()

s = ''aabb_This is a file."
s.lstrip(‘a(chǎn)abb_’)

將字符串s中的’aabb_‘刪除,運(yùn)行結(jié)果如圖:

This is a file.

(2)刪除指定字符之后內(nèi)容,使用函數(shù) str.partition()

s = ''This is a file_aabb"
head,sep,tail = str.partition('_')
print(head)

將字符串s中的’_aabb‘刪除,運(yùn)行結(jié)果如圖:

This is a file

3.總體解決方案

示例1:刪除文件名前綴

# 導(dǎo)入os模塊
import os
# 獲取文件路徑
path = 'C:\\myProject\\test'
# 設(shè)置工作路徑
os.chdir(path)
# 讀取文件名
filelist = os.listdir(path)
# 修改文件名
for fname in filelist:
    pre = 'www.cn-ki.net_'  #設(shè)置所要刪除的前綴
    new_fname = fname.lstrip(pre) #刪除
    os.rename(fname, new_fname) # 重命名

示例2:刪除文件名中的部分指定字段

# 導(dǎo)入os模塊
import os
# 獲取文件路徑
path = 'C:\\myProject\\test'
# 設(shè)置工作路徑
os.chdir(path)
# 讀取文件名
filelist = os.listdir(path)
# 修改文件名
for fname in filelist:
    head,sep,tail = fname.partition('_')   #刪除以下劃線_開頭的部分
    os.rename(fname,head+ '.pdf') 

說明
os.rename(fname,head+ '.pdf')
此處記得是head + '.pdf',原因
①fname.partition('') 分割的結(jié)果為:
head=基于大數(shù)據(jù)的xxx構(gòu)建方法
sep=_
tail =張三.pdf
②無法具體指定下劃線后面所帶字符,比如"filename1
張三.pdf","filename2_李四.pdf",只能確定要刪除部分的起始規(guī)律。

4.本文運(yùn)行環(huán)境說明

Python 3.6.4

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。