【Python 应用篇】python 内置 os 模块

本文介绍了Python内置的os模块,用于操作系统交互和文件系统操作。内容包括调用系统程序、文件路径处理、目录操作如创建、删除、改变路径,以及文件属性检查等。通过示例代码展示了如何在不同平台上执行os模块的功能,如打开应用、获取当前工作目录、创建和删除目录,以及文件属性如大小、时间戳的获取。此外,还涉及os.path模块的使用,如获取绝对路径、判断文件或目录存在、分离文件名和路径等。
摘要由CSDN通过智能技术生成

一、os模块概述

  • os模块是Python内置的与操作系统功能和文件系统相关的模块,该模块中的语句的执行结果通常与操作系统有关,在不同的操作系统上运行,得到的结果可能不一样
  • os模块与os.path模块用于对目录或文件进行操作

前提:在使用函数之前需先导入os函数

调用系统文件或程序:

# os模块与操作系统相关的一个模块,可以调用系统文件或应用程序
import os
 
print(os.system("notepad.exe"))
print(os.system("calc.exe"))
print(os.system('cmd'))

直接调用​​​​​​可执行文件

# 直接调用可执行文件(如:打开网易云音乐)
print(os.startfile('F:\\CloudMusic\\cloudmusic.exe'))

当前使用平台

# 返回当前使用平台的代表字符,Windows用'nt'表示,Linux用'posix'表示
print(os.name)

os模块操作目录相关函数

# 返回当前工作目录
print(os.getcwd())
# 返回stusystem目录下所有文件列表
print(os.listdir('../stusystem'))

 创建目录

#创建path目录(只能创建一级目录,如'F:\XXX\WWW'),在XXX目录下创建WWW目录
os.mkdir(path) 
#创建多级目录(如'F:\XXX\SSS'),在F盘下创建XXX目录,继续在XXX目录下创建SSS目录
os.makedirs(path)

删除文件或目录

#删除文件(必须是文件)
os.remove(path)
#删除path目录(只能删除一级目录,如'F:\XXX\SSS'),只删除SSS目录
os.rmdir(path)
#删除多级目录(如'F:\XXX\SSS'),必须为空目录,删除SSS、FFF目录
os.removedirs(path)

更改路径

#将当前工作目录更改为指定路径path
os.chdir(path)  

os.path() 模块

 绝对路径

#返回path的绝对路径
os.path.abspath(path)

查看文件

#判断path是否存在,存在返回True,不存在返回False
os.path.exists(path)
#判断path是否为文件,是返回True,不是返回False
os.path.isfile(path)
#判断path是否目录,是返回True,不是返回False
os.path.isdir(path)

查看文件名或目录

# 将path的目录和文件名分开为元组
os.path.split(path)
# 将path1,怕path2,...进行组合,若path2为绝对路径,则会将path1删除
os.path.join(path1,path2,...)
#返回path中的目录(文件夹部分),结果不包含'\'
os.path.dirname(path) 
#返回path中的文件名 
os.path.basename(path)  

文件名分离

# 分割文件名与路径,返回(f_path, f_name)元组。如果完全使用目录,它也会将最后一个目录作为文件名分离,且不会判断文件或者目录是否存在
split(path)
# 分离文件名与扩展名,返回(f_name, f_extension)元组
splitext(path)

查看文件时间

# 返回文件或目录的最后修改时间,结果为秒数
os.path.getmtime(path)
# 返回文件或目录的最后访问时间,结果为秒数
os.path.getatime(path)  
# 返回文件或目录得创建时间,结果为秒数
os.path.getctime(path)  

查看文件大小

#返回文件的大小,若是目录则返回0
os.path.getsize(path)  

代码练手:

import os
import os.path
import time

'''
# os模块与操作系统相关的一个模块,可以调用系统文件或应用程序
print(os.system("notepad.exe"))
print(os.system("calc.exe"))
print(os.system('cmd'))
'''

'''
# 直接调用可执行文件(如:打开网易云音乐)
print(os.startfile('F:\\CloudMusic\\cloudmusic.exe'))
'''

print('当前的操作系统平台是:{} ,请注意具体语法!!!'.format (os.name))
print(os.getcwd())  # 获取当前目录路径
print(os.listdir('../'))  # 列出当前路径下的文件和目录详细
print( 'apb' in os.listdir('../'))

#:f = open(r"C:\Users\xxxx\Desktop\e_python\py.log",mode='r', buffering= -1, encoding = 'utf-8')
with open(r"C:\Users\xxxx\Desktop\e_python\py.log",mode='r', buffering= -1, encoding = 'utf-8') as f:
	for line in f.readlines():
		print(line.strip())
f.close()

dir_name = 'my_python'
# 开始创建目录
for i in range(10):
	if os.path.exists(os.getcwd()+'\\'+ dir_name +'_'+'{}'.format(i)) == False :
		os.mkdir(dir_name+'_'+'{}'.format(i))   # 创建目录; 创建多级目录,递归创建使用 makedirs(path1/path2,[mode])
		time.sleep(1)
		print('你好,第{}个文件夹,已创建完毕!'.format(i))
	else:
		print('你好,第{}个文件夹,已经存在,跳过创建!'.format(i))
	print('第一阶段,所有文件夹创建完毕!')

# 显示所有文件夹的绝对路径
for i in range(10):
	print(os.path.abspath(dir_name +'_'+'{}'.format(i)))

# 分离文件目录+文件名字
for i in range(10):
	print(os.path.split(os.getcwd()+'\\'+ dir_name +'_'+'{}'.format(i)))

# 分离文件名+扩展名字
for i in range(10):
	print(os.path.splitext(os.getcwd()+'\\'+ dir_name +'_'+'{}'.format(i)))

# 从文件名字中提取文件路径
for i in range(10):
	print(os.path.dirname(os.getcwd()+'\\'+ dir_name +'_'+'{}'.format(i)))

# isdir or isfile
for i in range(10):
	print(os.path.isdir(os.getcwd()+'\\'+ dir_name +'_'+'{}'.format(i)),'是一个文件目录',os.path.getmtime(os.getcwd()+'\\'+ dir_name +'_'+'{}'.format(i)))
	print(os.path.isfile(os.getcwd()+'\\'+ dir_name +'_'+'{}'.format(i)),'是一个文件',os.path.getmtime(os.getcwd()+'\\'+ dir_name +'_'+'{}'.format(i)))


# # 返回文件或目录的最后修改时间,结果为秒数
# os.path.getmtime(path)
# # 返回文件或目录的最后访问时间,结果为秒数
# os.path.getatime(path)  
# # 返回文件或目录得创建时间,结果为秒数
# os.path.getctime(path)  


# 删除创建的目录
for i in range(10):
 	os.rmdir(os.getcwd()+'\\'+ dir_name +'_'+'{}'.format(i)) # 删除目录; 删除多级目录,使用 removedirs[path1/path2]
 	time.sleep(1)
 	print('你好,第{}个文件夹,已被删除!'.format(i))
print('第二阶段,所有文件夹均已被删除!')
# for 'my_python'+'_'+ '%s' % (i) in os.listdir('./'):
# 	os.rmdir(os.getcwd()+'\\'+dir_name)

  • 1
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值