Python学习笔记:os模组、glob模组、shutil模组应用于档案及目录操作

本文同步发表于小弟自架网站:微确幸资讯站

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 globfiles = 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 globtarget_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.txtfor 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 shutilfor d in my_dir:    shutil.rmtree(d)    print(f'目录__{d}  已删除')

目录__A第一层目录\A-1第二层子目录 已删除
目录__A第一层目录\A-2第二层子目录 已删除
目录__B第一层目录\B-1第二层子目录 已删除
目录__B第一层目录\B-2第二层子目录 已删除


关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章