在Python中有一个概念叫做模块(module),这个和C语言中的头文件以及Java中的包差不多,比喻一下,模块就是工具箱,要想使用这个工具箱中的工具(函数、类),就需要先导入这个模块。
在Python中用关键字“import”来导入某个模块,例如导入os模块:
import os
和C语言的头文件一样,导入模块要写在最前面。
os是我学习python用到的第一个模块,它主要包含普遍的操作系统功能。
以下列出os中的常用函数及说明:(path及file都要是字符串)
关于文件/目录的函数
os.remove(path) # 删除一个文件
os.rename(oldName, newName) # 重命名文件,如不是当前路径,需写相对路径
os.listdir(path) # 获取指定路径下的所有文件名和目录名
os.getcwd() # 获取当前工作目录
os.chdir(path) # 改变工作目录
os.mkdir(path) # 创建单层目录,如该目录已存在返回异常
os.makedirs(path) # 递归创建多层目录,如该目录已存在返回异常
os.rmdir(path) # 删除单层目录,如该目录非空则返回异常
os.removedirs(path) # 递归删除目录,从子目录到父目录逐层尝试删除,遇到非空目录返回异常
os.system(command) # 运行系统的shell命令,运行成功返回数字0
os.popen(command) # 运行系统的shell命令,将运行的输出结果保存在一个文件中,
# 可用read()读取,如:os.popen(command).read()
os.walk(top) # 遍历top路径以下所有的子目录,返回一个三元组:(路径, 目录名, 文件名)
os.curdir # 返回当前目录('.')
os.pardir # 返回上一级目录('..')
os.sep # 输出操作系统特定的路径分隔符(Win下为'\\',Linux下为'/')
os.linesep # 输出当前平台使用的行终止符(Win下为'\r\n',Linux下为'\n')
os.name # 输出当前使用的操作系统
#(包括:'posix'(linux/unix), 'nt'(windows), 'mac', 'os2', 'ce', 'java')
os.scandir(path) # 返回一个关于path目录下文件的DirEntry可迭代对象
# 具有以下属性和方法:
# name: 文件名,相对于 scandir path 参数( 对应于 os.listdir的返回值)
# path: 输入的路径名 ( 不一定是绝对路径) --与 os.path.join(scandir_path, entry.name)
# is_dir(*, follow_symlinks=True): 类似于 pathlib.Path.is_dir(),但返回值在 DirEntry 对象上是缓存;大多数情况下不需要系统调用;如果 follow_symlinks 是 false,则不要跟随符号链接。
# is_file(*, follow_symlinks=True): 类似于 pathlib.Path.is_file(),但返回值在 DirEntry 对象上是缓存;大多数情况下不需要系统调用;如果 follow_symlinks 是 false,则不要跟随符号链接。
# is_symlink(): 类似 pathlib.Path.is_symlink(),但返回值缓存在 DirEntry 对象上;大多数情况下不需要系统调用。
# stat(*, follow_symlinks=True): 类似 os.stat(),但返回值缓存在 DirEntry 对象上;不需要对 Windows进行系统调用;如果 follow_symlinks 是 false,则不跟随符号链接( 像 os.lstat() )。
# inode(): 返回项的节点数;返回值在 DirEntry 对象上缓存。
os.path常用函数
os.path.basename(path) # 去掉目录路径,单独返回文件名
os.path.dirname(path) # 去掉文件名,单独返回目录路径
os.path.exists(path) # 检验给出的路径是否真地存在
os.path.join(path1, path2, ...) # 将path1, path2, ...组合成一个路径名
os.path.split(path) # 分割文件名与路径,返回(f_path, f_name)元组。
# 如果目录中无文件,它会将最后一个目录作为文件名分离,且不会判断文件或者目录是否存在
os.path.splitext(file) # 分离文件名与扩展名,返回(f_name, f_extension)元组
os.path.getsize(file) # 返回指定文件的大小,单位字节
os.path.abspath(file) # 获得文件绝对路径
os.path.getatime(file) # 返回指定文件最近的访问时间(浮点型秒数,可用time模块的gmtime()或localtime()函数换算)
os.path.getctime(file) # 返回指定文件的创建时间(浮点型秒数,可用time模块的gmtime()或localtime()函数换算)
os.path.getmtime(file) # 返回指定文件最新的修改时间(浮点型秒数,可用time模块的gmtime()或localtime()函数换算)
os.path.isdir(path) # 判断指定路径是否存在且是一个目录
os.path.isfile(path) # 判断指定路径是否存在且是一个文件
os.path.islink(path) # 判断指定路径是否存在且是一个符号链接
os.path.ismount(path) # 判断指定路径是否存在且是一个挂载点
os.path.samefile(path1, paht2) # 判断path1和path2两个路径是否指向同一个文件