常用函数组合(持续更新)
os模块的常见函数列表
1.文件操作类
- os.remove(path) #用于删除指定路径的文件。如果指定的路径是一个目录,将抛出OSError。
- os.rename(src, dst) #命名文件或目录,能对相应的文件进行重命名
- os.renames(old, new) #用于递归重命名目录或文件。类似rename()。既可以重命名文件, 也可以重命名文件的上级目录名
- os.path.getmtime(path) #返回最近文件修改时间,从新纪元到访问时的秒数。
- os.path.getctime(path) #返回文件 path 创建时间,从新纪元到访问时的秒数。
- os.path.getsize(path) #返回文件大小,如果文件不存在就返回错误,如果为目录,返回0。
2.目录操作类
- os.mkdir(path[, mode]) #以数字权限模式创建目录。默认的模式为 0777 (八进制)。
- os.makedirs(path, mode=0o777) #用于递归创建目录。像 mkdir(), 但创建的所有文件夹需要包含子目录。
- os.rmdir(path) #删除path目录(只能删除一级目录,如’F:\XXX\SSS’),只删除SSS目录
- os.removedirs(path) #删除多级目录(如’F:\XXX\SSS’),必须为空目录,删除SSS、FFF目录
3.判断类
- os.path.isfile(path) #判断路径是否为文件
- os.path.isdir(path) #判断路径是否为目录
- os.path.exists(path) #如果路径 path 存在,返回 True;如果路径 path 不存在,返回 False。
- os.path.isabs(path) #判断是否为绝对路径,也就是说在WIndow系统下,如果输入的字符串以" / "开头,os.path.isabs()就会返回True
4.环境变量查询/获取类
- os.name() #返回当前使用平台的代表字符,Windows用’nt’表示,Linux用’posix’表示
- os.stat(path) #获取文件或者目录信息
- os.linesep() #当前平台用于分隔(或终止)行的字符串。它可以是单个字符,如 POSIX 上是 ‘\n’,也可以是多个字符,如 Windows 上是 ‘\r\n’。在写入以文本模式(默认模式)打开的文件时,请不要使用 os.linesep 作为行终止符,请在所有平台上都使用一个 ‘\n’ 代替。
- os.sep() #显示当前平台下路径分隔符,在 POSIX 上是 ‘/’,在 Windows 上是是 ‘\’
- os.pathsep() #操作系统通常用于分隔搜索路径(如 PATH)中不同部分的字符,如 POSIX 上是 ‘:’,Windows 上是 ‘;’。在 os.path 中也可用。
5.地址/路径类
- os.getcwd()#获取当前工作路径
- os.path.abspath(path) #返回path的绝对路径
- os.listdir(path) #返回path目录下所有文件列表
- os.path.basename(path) #返回文件名,纯粹字符串处理逻辑,路径错误也可以
- os.path.dirname(path) #返回文件路径
- os.path.split(path) #把路径分割成 dirname 和 basename,返回一个元组
- os.path.splitext(path) #分割路径,返回路径名和文件扩展名的元组
- os.path.join(path1[, path2[, …]]) #把目录和文件名合成一个路径,1.如果各组件名首字母不包含’/’,则函数会自动加上,2.如果有一个组件是一个绝对路径,则在它之前的所有组件均会被舍弃,3.如果最后一个组件为空,则生成的路径以一个’/’分隔符结尾
- os.path.walk(path, visit, arg) #遍历path,进入每个目录都调用visit函数,visit函数必须有3个参数(arg, dirname, names),dirname表示当前目录的目录名,names代表当前目录下的所有文件名,args则为walk的第三个参数
- os.chdir(path) #改变当前工作目录到指定的路径。
6.执行命令类
- os.close(fd) #关闭指定的文件描述符 fd
- os.system() #运行shell命令
一,文件操作类
os.remove(path)
功能:用于删除指定路径的文件。如果指定的路径是一个目录,将抛出OSError。
os.remove('C:/Users/zhengxiang.wzx/Desktop/timg.jpg')
os.rename(src, dst)
功能:命名文件或目录,能对相应的文件进行重命名
- src – 要修改的目录名
- dst – 修改后的目录名
os.rename("图片下载.py","图片下载1.py")
os.renames(old, new)
功能:
- old – 要重命名的目录
- new --文件或目录的新名字。甚至可以是包含在目录中的文件,或者完整的目录树。
#修改文件名的同时,上级目录也可以更改
os.renames("test/Python 63个内置函数详解.py","test2/内置函数详解.py")
os.path.getmtime(path)
功能:返回最近文件修改时间,从新纪元到访问时的秒数。
os.path.getmtime('C:/Users/wuzhengxiang/Desktop/股票数据分析/pi.txt')
1583069050.8148942
os.path.getctime(path)
功能:返回文件 path 创建时间,从新纪元到访问时的秒数。
os.path.getctime('C:/Users/wuzhengxiang/Desktop/股票数据分析/pi.txt')
1581868007.6123319
os.path.getsize(path)
功能:返回文件大小,如果文件不存在就返回错误(字节 大B)
os.path.getsize('C:/Users/wuzhengxiang/Desktop/股票数据分析/test.gif')
1128677
2.目录操作类
os.mkdir(path[, mode])
功能:以数字权限模式创建目录。默认的模式为 0777 (八进制)。
#创建新的目2233
os.mkdir('C:/Users/wuzhengxiang/Desktop/股票数据分析/2233', mode=0777 )
os.makedirs(path, mode=0o777)
功能:创建多级目录(如’F:\XXX\SSS’),在F盘下创建XXX目录,继续在XXX目录下创建SSS目录
import os
os.makedirs("yiji/erji")
os.rmdir(path)(需要一级目录是空的)
功能:#删除path目录(只能删除一级目录,如’F:\XXX\SSS’),只删除SSS目录,目录必须是空的
import os
os.rmdir("yiji")
os.removedirs(path)(需要多级目录是空的)
功能:#删除多级目录(如’F:\XXX\SSS’),必须为空目录,删除SSS、FFF目录,目录必须是空的
import os
os.removedirs("yiji/erji")
3.判断类
os.path.isfile(path)
功能:判断路径是否为文件
os.path.isfile("C:/Users/wuzhengxiang/Desktop/股票数据分析/pi.txt")
True#不是文件 返回False
s.path.isfile("C:/Users/wuzhengxiang/Desktop/股票数据分析/")
False
os.path.isdir(path)
功能:判断路径是否为目录
os.path.isdir('C:/Users/wuzhengxiang/Desktop/股票数据分析')
True
os.path.isdir('C:/Users/wuzhengxiang/Desktop/股票数据分析/pi.txt')
False
os.path.exists(path)
功能:如果路径 path 存在,返回 True;如果路径 path 不存在,返回 False。
os.path.exists('C:/Users/wuzhengxiang/Desktop/股票数据分析/')
True
os.path.exists('C:/Users/wuzhengxiang/Desktop/股票数据分析/pi_01.txt')
False
os.path.isabs(path)
功能:判断是否为绝对路径,也就是说在WIndow系统下,如果输入的字符串以" / "开头,os.path.isabs()就会返回True
os.path.isabs('D:/thunder')
True
os.path.isabs('D:\thunder')
False
4.环境变量查询/获取类
os.name()
功能:显示当前使用的平台,'nt’表示Windows,‘posix’ 表示Linux
os.name
'nt'
os.stat(path)
功能:获取文件或者目录信息
os.stat('C:/Users/wuzhengxiang/Desktop/股票数据分析\\pi.txt')
os.stat_result(st_mode=33206, st_ino=22236523160361562, st_dev=2419217970, st_nlink=1
, st_uid=0, st_gid=0, st_size=53, st_atime=1589638199, st_mtime=1589638199, st_ctime=1581868007)
5.地址/路径类
os.getcwd()
功能:返回当前进程的工作目录。
import os
print(os.getcwd())
#C:\Users\Administrator\Desktop\测试
os.path.abspath(path)
功能:返回文件的绝对路径
import os
print(os.path.abspath("pandas.py"))
# C:\Users\Administrator\Desktop\测试\pandas.py
os.listdir(path)
功能:列出目录下的所有文件和文件夹
os.listdir('.')
['ETF研究.py', 'foo.txt', 'pi.txt', 'render.html']
os.path.basename(path)
功能:返回文件名,纯粹字符串处理逻辑,路径错误也可以
os.path.basename('C:\\Users\\zhengxiang.wzx\\all_data.xlsx')
'all_data.xlsx'
os.path.dirname(path)
功能:返回文件路径
os.path.dirname('C://python//my_file.txt')
'C://python'
os.path.split(path)
功能:把路径分割成 dirname 和 basename,返回一个元组
os.path.split('D:\Python\test\data.txt')
('D:\\Python\test', 'data.txt')
os.path.splitext(path)
功能:分割路径,返回路径名和文件扩展名的元组
os.path.splitext('C:/Users/zhengxiang.wzx/IMG_7358.JPG')
('C:/Users/zhengxiang.wzx/IMG_7358', '.JPG')
os.walk(path, visit, arg)
功能:遍历path,进入每个目录都调用visit函数,visit函数必须有3个参数(arg, dirname, names),dirname表示当前目录的目录名,names代表当前目录下的所有文件名,args则为walk的第三个参数
import os
print(list(os.walk("资料/")))
[('资料/', ['ceshi1'], ['1-1.txt', '1.txt', '1_empty.txt', '2.txt', '2.txt.zip', '3.txt', '4.txt', '分公司建维部人员信息.xlsx', '驾驶证.jpg']), ('资料/ceshi1', ['111', 'ceshi1'], ['1-1.txt', '1-2.txt', '1.txt', '1_empty.txt', '2.txt', '2.txt.zip', '3.txt', '4.txt', '分公司建维部人员信息.xlsx', '驾驶证.jpg']), ('资料/ceshi1\\111', [], []), ('资料/ceshi1\\ceshi1', ['111'], ['1-2.txt']), ('资料/ceshi1\\ceshi1\\111', [], [])]
[Finished in 0.2s]
os.chdir(path)
功能:改变当前工作目录到指定的路径。
#查看当前目录os.getcwd()
'C:\\Users\\wuzhengxiang'#重新设置当前工作空间
os.chdir('C:/Users/wuzhengxiang/Desktop/股票数据分析')
#再次查看当前目录,已经变成新的了
os.getcwd()
'C:\\Users\\wuzhengxiang\\Desktop\\股票数据分析'
6.执行命令类
os.close(fd)(文件处理读写时用,不过在读取文件时使用with形式就不用设定close函数了)
功能:关闭指定的文件描述符 fd
fd = os.open( "foo.txt", os.O_RDWR|os.O_CREAT )
os.write(fd, bytes("This is test", encoding = "utf8"))
os.close( fd )
os.system()
功能:运行shell命令
>>>os.system('cmd') #Windows下打开终端
>>>os.system('ls') #Linux下查看当前目录所有文件
注意:此处运行shell命令时,如果要调用python之前的变量,可以用如下方式:
var=123
os.environ['var']=str(var) //注意此处[]内得是 “字符串”
os.system('echo $var')