In [1]:
import os
# 取得目前工作目錄
c_dir = os.getcwd()
c_dir
Out[1]:
'D:\\DATA\\Python data\\9自我學習\\20220808測試'
In [2]:
# "o"為開啟,"w"為新增檔案,"a"為append模式加到檔案最後面
# 新建 test.txt的檔案,如果沒這個檔案就新建
f = open('test.txt', 'w')
In [3]:
# 檔案寫入"123",並關閉檔案
f.write('123')
f.close()
In [4]:
# 批次建立檔案,建議以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測試
In [5]:
import glob
files = glob.glob('測試檔案*.*')
files
Out[5]:
['測試檔案1.txt', '測試檔案2.txt', '測試檔案3.txt']
In [6]:
# 刪除所有「測試檔案*.txt」
for f in files:
if os.path.exists(f):
os.remove(f)
print(f'檔名:{f} 已刪除')
檔名:測試檔案1.txt 已刪除 檔名:測試檔案2.txt 已刪除 檔名:測試檔案3.txt 已刪除
In [7]:
# 批次建立目錄及子目錄,目標如下:
# (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
Out[7]:
'D:\\DATA\\Python data\\9自我學習\\20220808測試'
In [8]:
for x in ['A', 'B']:
os.makedirs(f'{x}第一層目錄')
for y in range(1, 3):
os.makedirs(f'{x}第一層目錄/{x}-{y}第二層子目錄')
In [9]:
# 列出所有的目錄及子目錄
[x[0] for x in os.walk(w_dir)]
Out[9]:
['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第二層子目錄']
In [10]:
# 列出所有的目錄及子目錄
[x[0] for x in os.walk(w_dir)][:]
Out[10]:
['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第二層子目錄']
In [11]:
import glob
target_dir = glob.glob('*/*')
target_dir
Out[11]:
['A第一層目錄\\A-1第二層子目錄', 'A第一層目錄\\A-2第二層子目錄', 'B第一層目錄\\B-1第二層子目錄', 'B第一層目錄\\B-2第二層子目錄']
In [12]:
# 在所有的第二層子目錄中,建立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檔案已建立
In [13]:
# 列出所有含「子目錄」關鍵字的目錄
my_dir = glob.glob('*\\*子目錄')
my_dir
Out[13]:
['A第一層目錄\\A-1第二層子目錄', 'A第一層目錄\\A-2第二層子目錄', 'B第一層目錄\\B-1第二層子目錄', 'B第一層目錄\\B-2第二層子目錄']
In [14]:
# 千萬要小心操作
# 千萬要小心操作
# 千萬要小心操作
# 將「子目錄」關鍵字的目錄刪除,就算目錄中有檔案,一樣刪除
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第二層子目錄 已刪除
In [ ]: