记录从准研一假期自学PYTHON的全过程day11

93 阅读2分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第1天,点击查看活动详情

也是暑假自学python的第11天

文件系统学习

在文件的学习中,除了对文件进行读写删改等内容上的操作,还要对文件系统进行操作。在对文件进行操作时候,要导入os包:import os

使用rename修改文件名:

import os
def user_rename():
    os.rename('file1','file2')

user_rename()

运行结果如下:

image.png

对文件进行删除: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()

创建一个实验性文件列表:

image.png

输出的结果为:

['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的话,只会打出最高级的目录,而无法进入二级目录。

实际的目录为:

image.png 输出结果为:

image.png

如果要写到与树相同的样子:

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来进行二级文件名的缩进,每小一级多四个空格,这样子的输出结果就为:

image.png

其中最为关键的为路径名字的拼接!

=============================================================