携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第1天,点击查看活动详情
也是暑假自学python的第11天
文件系统学习
在文件的学习中,除了对文件进行读写删改等内容上的操作,还要对文件系统进行操作。在对文件进行操作时候,要导入os包:import os
使用rename修改文件名:
import os
def user_rename():
os.rename('file1','file2')
user_rename()
运行结果如下:
对文件进行删除:remove方法
def user_del():
os.remove('file2')
user_del()
在删除文件的过程中,同样也可以删除不同目录下的文件,比如在python文件中创建一个新的目录
dir:new-Directory
在删除过程中打入目录,pycharm会进行联想:
def user_del():
os.remove('dir/file2')
此时调用函数就可进行删除。
显示文件的目录列表:
def show():
print(os.listdir('dir'))
if __name__ == '__main__':
show()
创建一个实验性文件列表:
输出的结果为:
['dir1', 'file1', 'file2']
remove删除文件
rmdir删除文件夹
os.mkdir('dir2')
创建文件夹
os的方法有很多,但是一般常用也就7-8个,在使用的过程中可以随时查阅文档,也不需要死记硬背。
os.rmdir('dir2')
用来删除文件夹
print(os.getcwd())
用来获取当前文件夹目录
文件系统的深度优先搜索遍历
深度优先搜索遍历:将文件目录按照深度优先搜索进行遍历,所写代码如下:
def dfs(path_name):
file_names=os.listdir(path_name)
for i in file_names:
print(i)
current_name=path_name+'/'+i
if os.path.isdir(current_name):
dfs(current_name)
if __name__ == '__main__':
dfs('dir')
使用递归来对目录进行遍历
current_name的作用就是将每一级的目录都进行遍历,如果不用current_name而只用i的话,只会打出最高级的目录,而无法进入二级目录。
实际的目录为:
输出结果为:
如果要写到与树相同的样子:
def dfs(path_name,width):
file_names=os.listdir(path_name)
for i in file_names:
print(' '*width+i)
current_name=path_name+'/'+i
if os.path.isdir(current_name):
dfs(current_name,width+4)
if __name__ == '__main__':
dfs('dir',0)
需要增加一个width来进行二级文件名的缩进,每小一级多四个空格,这样子的输出结果就为:
其中最为关键的为路径名字的拼接!
=============================================================