python 的文件夹函数(更新3)

python 的文件夹操作函数在os(小写)模块中。使用时需要执行以下命令:

import os

一、os相关函数介绍:
1、os.chdir(path):将当前工作文件夹改为参数指向的文件夹。如果没有给出path参数,则报错。
2、os.getcwd():显示当前工作文件夹。
3、os.makedirs(name):根据参数创建新文件夹。如果没有给出name参数,则报错。此函数支持创建多级文件夹,如:\c1\c2\c3,如果上一级文件不存在,则会自动创建。
4、os.mkdir(name):根据参数创建新文件夹。如果没有给出name参数,则报错。此函数不支持创建多级文件夹,如:\\c1\c2,如果c1不存在,则创建c2会报错。
5、os.listdir(path):返回参数path文件夹下的所有文件名及子文件夹的字符串列表(包括文件名及扩展名)。不给出path时,默认是当前工作文件夹。
6、os.unlink(path):删除path文件夹下的文件,如果path是文件名则会引起错误。删除后不能从回收站找回。
7、os.rmdir(path):删除path文件夹下的文件夹。但该文件夹必须是空的,里面不能包含任何文件或文件夹。如果文件夹不存在或不为空,则分别抛出 FileNotFoundError 或 OSError 异常。删除后不能从回收站找回。
8、os.walk(path):扫描某个指定目录下所包含的子目录和文件。详解如下:
walk()方法语法格式如下:
os.walk(top[, topdown=True[, οnerrοr=None[, followlinks=False]]])
参数含义:
top:必选,是所要遍历的目录的地址, 返回的是一个三元组(root,dirs,files)。root 所指的是当前正在遍历的这个文件夹的本身的地址;dirs 是一个 list ,内容是该文件夹中所有的目录的名字(不包括子目录);files 同样是 list , 内容是该文件夹中所有的文件(不包括子目录)
topdown:可选,默认为True。为 True,则优先遍历 top 目录,否则优先遍历 top 的子目录。walk 会遍历top文件夹与top 文件夹中每一个子目录。
onerror:可选,需要一个 callable 对象,当 walk 需要异常时,会调用。
followlinks:可选,默认为False。如果为 True,则会遍历目录下的快捷方式(linux 下是软连接 symbolic link )实际所指的目录,如果为 False,则优先遍历 top 的子目录。
os.walk()的遍历的详细过程参见链接:https://blog.csdn.net/qq_37344125/article/details/107972463

二、os.path模块:是os中部分函数的集合
1、os.path.join():根据参数字符串返回包含文件夹及文件名的字符串。

os.path.join('software','zxqygl','data')      #输出:'software\\zxqygl\\data'

2、os.path.abspath(path):返回参数path给定的绝对路径。如果没有给出path参数,则报错。
3、os.path.isabs(path):如果给定的参数path是绝对路径,就返回True,否则返回False。如果没有给出path参数,则报错。
4、os.path.relpath(path,start):返回从start文件夹到path的相对路径字符串。如果没有start参数,则以当前工作文件夹为开始路径。如果没有给出path参数,则报错。
5、os.path.dirname(path):根据参数path返回其最后一个“\”之前的所有内容的字符串。如果没有给出path参数,则报错。
6、os.path.basename(path):根据参数path返回其最后一个“\”之后的所有内容的字符串。如果没有给出path参数,则报错。
7、os.path.split(path):根据参数返回其包含的路径名及文件名元组。注意,与os.path.split()与字符串split()函数不同。 如果没有给出path参数,则报错。

os.path.split('c:\windows\system32\calc.exe')   #输出:('c:\\windows\\system32', 'calc.exe')

8、os.path.getsize(path):返回path参数指定的文件的字节数。如果没有给出path参数,则报错。
9、os.path.exists(path):如果参数path所给定的文件夹或文件名存在,则返回True。否则返回False。如果没有给出path参数,则报错。
10、os.path.isdir(path):如果参数path存在且是一个文件夹名,则返回True,如果不是文件夹,则返回False。如果没有给出path参数,则报错。
11、os.path.isfile():如果参数path存在且是一个文件名,则返回True,如果不是文件名,则返回False。如果没有给出path参数,则报错。

三、shutil模块:
使用此模块时,应先执行下列命令导入此模块:

import shutil

1、shutil.copy(source,destination):将文件source(注意不是文件夹)复制到destination文件夹。注意:source及destination都是字符串。如果destination是文件名,则目标文件名将改被为destination。注意:shutil.copy()只能复制单个文件。
2、shutil.copytree(source,destination):将source文件夹下的文件及子文件夹、子文件夹中的文件全部复制到destination文件夹。注意:此函数连文件及文件夹一并复制。如果destination文件夹不存在,则新建一个名为destination的文件夹。
3、shutil.move(source,destination):将文件source文件(注意不是文件夹)复制到destination文件夹。注意1:source及destination都是字符串。如果destination含有文件名,则目标文件名将改被为destination所包含的文件名。如果destination指向的文件夹不存在,则destination将被视为文件名,从而导致source文件被改名为destination。注意2:构成destination的文件夹必须是存在的,否则将引发异常,而不会自动创建文件夹。
4、shutil.rmtree(path):删除path文件夹,连同path文件夹及其下面的所有文件及文件夹。使用此函数应足够小心。 删除后不能从回收站找回。

在实际使用中,根据需要使用不同的函数组合,可以很方便地操作文件夹。

猜你喜欢

转载自blog.csdn.net/any1where/article/details/128166531