本文同步發表於小弟自架網站:微確幸資訊站
import os
# 取得目前工作目錄
c_dir = os.getcwd()
c_dir
'D:\DATA\Python data\9自我學習\20220808測試'
# "o"為開啟,"w"為新增檔案,"a"為append模式加到檔案最後面
# 新建 test.txt的檔案,如果沒這個檔案就新建
f = open('test.txt', 'w')
# 檔案寫入"123",並關閉檔案
f.write('123')
f.close()
# 批次建立檔案,建議以with open方式建立檔案,才沒有關檔的問題
for i in range(1, 4):
with open(f'測試檔案{i}.txt', 'w') as f:
print(f'正在建立測試檔案{i}.txt')
print(c_dir)
正在建立測試檔案1.txt
正在建立測試檔案2.txt
正在建立測試檔案3.txt
D:\DATA\Python data\9自我學習\20220808測試
import glob
files = glob.glob('測試檔案*.*')
files
['測試檔案1.txt', '測試檔案2.txt', '測試檔案3.txt']
# 刪除所有「測試檔案*.txt」
for f in files:
if os.path.exists(f):
os.remove(f)
print(f'檔名:{f} 已刪除')
檔名:測試檔案1.txt 已刪除
檔名:測試檔案2.txt 已刪除
檔名:測試檔案3.txt 已刪除
# 批次建立目錄及子目錄,目標如下:
# (base) D:\DATA\Python data\9自我學習\20220808測試>tree/f
# 列出磁碟區 DATA 的資料夾 PATH
# 磁碟區序號為
# D:.
# ├─A第一層目錄
# │ ├─A-1第二層子目錄
# │ └─A-2第二層子目錄
# └─B第一層目錄
# ├─B-1第二層子目錄
# └─B-2第二層子目錄
w_dir = os.getcwd()
w_dir
'D:\DATA\Python data\9自我學習\20220808測試'
for x in ['A', 'B']:
os.makedirs(f'{x}第一層目錄')
for y in range(1, 3):
os.makedirs(f'{x}第一層目錄/{x}-{y}第二層子目錄')
# 列出所有的目錄及子目錄
[x[0] for x in os.walk(w_dir)]
['D:\DATA\Python data\9自我學習\20220808測試',
'D:\DATA\Python data\9自我學習\20220808測試\.ipynb_checkpoints',
'D:\DATA\Python data\9自我學習\20220808測試\A第一層目錄',
'D:\DATA\Python data\9自我學習\20220808測試\A第一層目錄\A-1第二層子目錄',
'D:\DATA\Python data\9自我學習\20220808測試\A第一層目錄\A-2第二層子目錄',
'D:\DATA\Python data\9自我學習\20220808測試\B第一層目錄',
'D:\DATA\Python data\9自我學習\20220808測試\B第一層目錄\B-1第二層子目錄',
'D:\DATA\Python data\9自我學習\20220808測試\B第一層目錄\B-2第二層子目錄']
# 列出所有的目錄及子目錄
[x[0] for x in os.walk(w_dir)][:]
['D:\DATA\Python data\9自我學習\20220808測試',
'D:\DATA\Python data\9自我學習\20220808測試\.ipynb_checkpoints',
'D:\DATA\Python data\9自我學習\20220808測試\A第一層目錄',
'D:\DATA\Python data\9自我學習\20220808測試\A第一層目錄\A-1第二層子目錄',
'D:\DATA\Python data\9自我學習\20220808測試\A第一層目錄\A-2第二層子目錄',
'D:\DATA\Python data\9自我學習\20220808測試\B第一層目錄',
'D:\DATA\Python data\9自我學習\20220808測試\B第一層目錄\B-1第二層子目錄',
'D:\DATA\Python data\9自我學習\20220808測試\B第一層目錄\B-2第二層子目錄']
import glob
target_dir = glob.glob('*/*')
target_dir
['A第一層目錄\A-1第二層子目錄',
'A第一層目錄\A-2第二層子目錄',
'B第一層目錄\B-1第二層子目錄',
'B第一層目錄\B-2第二層子目錄']
# 在所有的第二層子目錄中,建立test1.txt、test2.txt檔案,目錄如下:
# 列出磁碟區 DATA 的資料夾 PATH
# 磁碟區序號為 0000-4823
# D:.
#
# ├─A第一層目錄
# │ ├─A-1第二層子目錄
# │ │ test1.txt
# │ │ test2.txt
# │ │
# │ └─A-2第二層子目錄
# │ test1.txt
# │ test2.txt
# │
# └─B第一層目錄
# ├─B-1第二層子目錄
# │ test1.txt
# │ test2.txt
# │
# └─B-2第二層子目錄
# test1.txt
# test2.txt
for i in target_dir:
for j in range(1, 3):
with open(f'{i}\\test{j}.txt', 'w') as f:
print(f'{i}\\test{j}.txt檔案已建立')
A第一層目錄\A-1第二層子目錄\test1.txt檔案已建立
A第一層目錄\A-1第二層子目錄\test2.txt檔案已建立
A第一層目錄\A-2第二層子目錄\test1.txt檔案已建立
A第一層目錄\A-2第二層子目錄\test2.txt檔案已建立
B第一層目錄\B-1第二層子目錄\test1.txt檔案已建立
B第一層目錄\B-1第二層子目錄\test2.txt檔案已建立
B第一層目錄\B-2第二層子目錄\test1.txt檔案已建立
B第一層目錄\B-2第二層子目錄\test2.txt檔案已建立
# 列出所有含「子目錄」關鍵字的目錄
my_dir = glob.glob('*\\*子目錄')
my_dir
['A第一層目錄\A-1第二層子目錄',
'A第一層目錄\A-2第二層子目錄',
'B第一層目錄\B-1第二層子目錄',
'B第一層目錄\B-2第二層子目錄']
# 千萬要小心操作
# 千萬要小心操作
# 千萬要小心操作
# 將「子目錄」關鍵字的目錄刪除,就算目錄中有檔案,一樣刪除
import shutil
for d in my_dir:
shutil.rmtree(d)
print(f'目錄__{d} 已刪除')
目錄__A第一層目錄\A-1第二層子目錄 已刪除
目錄__A第一層目錄\A-2第二層子目錄 已刪除
目錄__B第一層目錄\B-1第二層子目錄 已刪除
目錄__B第一層目錄\B-2第二層子目錄 已刪除