iT邦幫忙

2021 iThome 鐵人賽

DAY 22
0
自我挑戰組

學習30天的Python系列 第 26

學習Python紀錄Day26 - 批次處理檔案part2

批次修改檔名

在os模組中使用rename()更改檔名

path = "./videos"
bname = "video"
count = 1
for fname in os.listdir(path):
	s_name = os.path.join(path, fname)
	name = os.path.splitext(fname)
	new_fname = bame + str(count) + name[1]
	count = count + 1

(s_fname為原始檔案全名,呼叫os.path.splitext()分割檔名和副檔名)

new_fname = os.path.join(path, new_fname)
print(s_fname, new_fname)
os.rename(s_fname, new_fname)

遞迴取出所有子目錄和檔名

  • 使用walk()遞迴取出路徑下所有子目錄和檔名元組
  • path變數是目的路徑
path = "./jpgs"
for root, dirs., files in os.walk(path):
	print(root)
	for fname in files:
		print(os.path.join(root, fname)

複製目錄下所有檔案至另一目錄

shutil模組可以使用copytree(A,B),將參數目錄A的所有檔案複製到目錄B

path = "./figures"
shutil.rmtree(path)			#rmtree()可以將參數目錄下所有檔案和子目錄都刪除掉

移動整個目錄和檔案

move(A,B)可以移動檔案或整個目錄(參數AB可以是檔案或目錄)

  • 如果B存在,就將A移動到B之下
  • 若A和B都存在,則將S覆寫B
  • 若B不存在,將A更名為B

上一篇
學習Python紀錄Day25 - 批次處理檔案
下一篇
學習Python紀錄Day27 - Regular Expression正規表達式
系列文
學習30天的Python30

尚未有邦友留言

立即登入留言