Re: [請問] 自動建立資料夾歸檔軟體
照原PO第一篇的例子,在Python裡面可以這樣做:
import re
li = ['1_1_1_1 - 20080807.a', '1_1_1_1 - 20080807.b', '1_1_1_1 - 20080807.c',
'1_1_1_1 - 20080808.a', '1_1_1_1 - 20080808.b', '1_1_1_1 - 20080808.c',
'1_1_1_2 - 20080807.a', '1_1_1_2 - 20080807.b', '1_1_1_2 - 20080807.c',
'1_1_1_2 - 20080808.a', '1_1_1_2 - 20080808.b', '1_1_1_2 - 20080808.c']
#制定規則
pattern = re.compile('^(\d*_\d*_\d*_\d*)(.*)')
d = {}
for item in li:
group = pattern.search(item).groups()
if group[0] not in d.keys():
d[group[0]] = []
d[group[0]].append(item)
d 裡面的結果會是這個樣子,
d['1_1_1_1']:
1_1_1_1 - 20080807.a
1_1_1_1 - 20080807.b
1_1_1_1 - 20080807.c
1_1_1_1 - 20080808.a
1_1_1_1 - 20080808.b
1_1_1_1 - 20080808.c
d['1_1_1_2']:
1_1_1_2 - 20080807.a
1_1_1_2 - 20080807.b
1_1_1_2 - 20080807.c
1_1_1_2 - 20080808.a
1_1_1_2 - 20080808.b
1_1_1_2 - 20080808.c
d 的 key 就是資料夾名稱, value 則是檔案名稱。
--------------------------------------------------------------------------
獲得資料夾內容:
import os
os.listdir('C:\\')
或是
import os
import glob
os.chdir('C:\\')
glob.glob('*')
會傳回C巢目錄下的檔案,glob可以指定檔名內容,比如說你要找MP3檔案,
你應該打 glob.glob('*.mp3')
建立資料夾
import os
os.mkdir(path)
移動檔案:
import shutil
#move(原路徑, 新路徑)
shutil.move(r'C:\123.txt', r'D:\)
-----------------------------------------------------------------------------
所以真正的作法應該是,
import os
import shutil
import re
#獲得資料夾內容
li = os.listdir('C:\\')
#制定規則
pattern = re.compile('^(\d*_\d*_\d*_\d*)(.*)')
#找出index,如1_1_1_1、1_1_1_2
for item in li:
group = pattern.search(item).groups()
if group[0] not in d.keys():
d[group[0]] = []
d[group[0]].append(item)
for index in d.keys():
os.mkdir('C:\\' + index)
for name in d[index]:
shutil.move('C:\\' + name, 'C:\\' + index)
如此一來,方可完成,當然這只是一個簡單的範例,
如果想要有彈性點,還要制定更好的規則 :)
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 122.127.45.34
→
08/11 09:57, , 1F
08/11 09:57, 1F
討論串 (同標題文章)
完整討論串 (本文為第 5 之 5 篇):
0
5
EZsoft 近期熱門文章
PTT數位生活區 即時熱門文章