Python标准库os的使用(系统变量的操作,文件和目录的操作,执行命令和管理进程)

常用函数组合(持续更新)


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')

上一篇:Python实现Arcgis 相关批量操作


下一篇:Sqlmap入土详解