我有一些 pdf 檔案,我需要使用您的部分姓名創建檔案夾并將 pdf 移動到檔案夾中。
cwd = os.getcwd()
padrao = '_V1_A0V0_T07-54-369-664_S00001.pdf'
for file in glob.glob("*.pdf"):
dst = cwd "\\" file.replace(str(padrao), '').replace('P', '')
os.mkdir(dst)
shutil.move(file, dst)
例如:我有檔案 P 9883231 _V1_A0V0_T07-54-369-664_S000 01 .pdf、P 9883231 _V1_A0V0_T07-54-369-664_S000 02 .pdf 和 P1235567_V1_A0V0_T07-504-369-64
在這個例子中,我需要腳本來創建兩個檔案夾:9883231 和 1234567。(斜體部分必須是檔案夾的名稱)
請注意,在我的代碼中,我洗掉了不需要的部分以創建檔案夾,開頭的“P”和 padrao = '_V1_A0V0_T07-54-369-664_S00001.pdf' 的一部分
問題是padrao結尾的數字可以是可變的,檔案可以以“02.pdf”、“03.pdf”結尾
在我上面提到的示例中,檔案夾 9883231 應該包含這兩個檔案。
uj5u.com熱心網友回復:
正則運算式可以在這里解決問題:
import re
import os
import glob
import shutil
cwd = os.getcwd()
padrao = '_V1_A0V0_T07-54-369-664_S000'
for file in glob.glob("*.pdf"):
dst = os.path.join(cwd, re.findall("P(.*)" padrao "\d{2}.pdf", file)[0])
os.mkdir(dst)
shutil.move(file, dst)
請注意,我洗掉了padrao變化的部分。正則運算式匹配所有以 aP開頭的padrao字串,后跟字串值,后跟 2 位數字,然后是.pdf; 并采取第一次出現(不檢查是否在這里找到任何東西......)
此外,更好的做法是os.path.join()在創建路徑字串時避免出現問題(尤其是在 whanging os 時)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/511782.html
