os模块学习

【一】文件路径相关的操作

【1】获取当前文件所在的文件夹路径

# os.path.dirname(__file__)
​
import os
file_name = os.path.dirname(__file__)
print(file_name)        # H:\pycharm projects\day\模块学习2

【2】获取当前文件所在的文件路径

# os.path.abspath(__file__)
​
import os
file_path = os.path.abspath(__file__)
print(file_path)    # H:\pycharm projects\day\模块学习2\os模块学习.py

【3】判断当前文件路径是否存在 文件夹/文件

import os
file_name = os.path.dirname(__file__)
file_path = os.path.abspath(__file__)
print(os.path.exists(path=file_name))   # True
print(os.path.exists(path=file_path))   # True

【4】拼接文件路径

file_new = os.path.join(file_name,'data')
print(os.path.exists(path=file_new))    # Flase

【5】切割文件路径

# os.path.split()
​
import os
file_name = os.path.dirname(__file__)
file_path = os.path.abspath(__file__)
file_split = os.path.split(file_name)
print(file_split)
file_split = os.path.split(file_path)
print(file_split)

【6】直接获取文件夹结尾路径

# os.path.dirname()
​
import os
file_name = os.path.dirname(__file__)
file_path = os.path.abspath(__file__)
file_name_basename = os.path.basename(file_name)
print(file_name_basename)
file_name_basename2 = os.path.basename(file_path)
print(file_name_basename2)

【7】判断当前文件路径是否是文件夹/文件

# os.path.isfile()  是否为文件
# os.path.isdir()   是否为文件夹
import os
file_name = os.path.dirname(__file__)
file_path = os.path.abspath(__file__)
# 判断是否为文件
print(os.path.isfile(file_name))  # False
print(os.path.isfile(file_path))  # True
# 判断是否为文件夹
print(os.path.isdir(file_name))  # True
print(os.path.isdir(file_path))  # False

【8】判断当前路径是否为绝对路径

# os.path.isabs()
​
file_path = os.path.abspath(__file__)
path_one = './05os模块.py'
print(os.path.isabs(path_one))  # False
print(os.path.isabs(file_path))  # True

【9】获取当前文件或目录

(1)active:最后访问时间

os.path.getatime

import time
base_dir = os.path.getatime(file_name)
print(base_dir)
print(time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(os.path.getatime(file_path))))
(2)create:创建时间

os.path.getctime

import os
import time
file_name = os.path.dirname(__file__)
file_path = os.path.abspath(__file__)
print(time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(os.path.getctime(file_path))))  
# 2024-04-19 10:10:28
print(time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(os.path.getctime(file_name))))
# 2024-04-19 09:19:26
(3)modify:修改时间

os.path.getmtime

import os
import time
file_name = os.path.dirname(__file__)
file_path = os.path.abspath(__file__)
print(time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(os.path.getmtime(file_name))))
# 2024-04-19 19:11:43
print(time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(os.path.getmtime(file_path))))
# 2024-04-19 19:11:43

【10】获取当前文件的大小

import os
import time
file_name = os.path.dirname(__file__)
file_path = os.path.abspath(__file__)
print(os.path.getsize(file_name))		# 4096
print(os.path.getsize(file_path))		# 2226

【二】文件和文件夹操作

【1】主动创建文件夹

os.mkdir()创建文件夹

import os
base_dir = os.path.dirname(__file__)	# 获取路径,去除最后一个路径
print(base_dir)         # H:\pycharm projects\day\模块学习2
img_path = os.path.join(base_dir, 'img')	# 添加一个新文件夹路径
print(os.path.exists(img_path))		# Flase  文件夹不存在
if not os.path.exists(img_path):	# 判断文件夹是否存在
    os.mkdir(img_path)				# 不存在则创建一个
print(os.path.exists(img_path))		# True

【2】创建多级文件夹

与上面创建单级同理

os.makedirs() 创建多级文件夹

import os
base_dir = os.path.dirname(__file__)
log_path = os.path.join(base_dir,'log','user_log','user_logs')
if not os.path.exists(log_path):
    os.makedirs(log_path)
print(os.path.exists(log_path))

【3】删除单级文件夹

只能删除空文件夹,即使文件夹内有空文件也不行,那不算空

os.rmdir() 删除文件夹

import os
base_dir = os.path.dirname(__file__)			# 获取文件夹路径,去除最后一条路径
img_path = os.path.join(base_dir, 'img')		# 给目标文件img赋值
# H:\pycharm projects\day\模块学习2\img
print(os.path.exists(img_path))			# True	输出一下判断它是否存在
os.rmdir(img_path)		# 删除文件夹
print(os.path.exists(img_path))			# False 再次输出判断是否存在

【4】删除多级文件夹

删除多级文件夹,路径需要到最里面那一层并且每一个文件夹必须是空的

import os
base_dir = os.path.dirname(__file__)
file_name = 'log'
log_path = os.path.join(file_name, 'user_log')
file_trues_path = os.path.join(base_dir,log_path,'user_logs')
print(file_trues_path)
print(os.path.exists(file_trues_path))
os.removedirs(file_trues_path)
print(os.path.exists(file_trues_path))

【5】列出当前文件下的所有文件名

or.listdir() 列出当前文件下所有文件名

import os
base_dir = os.path.dirname(__file__)
print(os.listdir(base_dir))
# ['datetime学习.py', 'logging.py', 'os模块学习.py', 'time学习.py', '__pycache__']

【6】删除指定文件

os.remove()删除指定路径下的某个文件

import os
base_dir = os.path.dirname(__file__)		
data_path = os.path.join(base_dir, 'logging.py')	# 检索出logging.py文件
os.remove(data_path)			# 删除文件

【7】给指定文件或者文件夹重命名

给两个绝对路径

一个没改之前的,另一个是想改成后的

os.rename(原来的名字,修改后名字)

import os
base_dir = os.path.dirname(__file__)
old_path = os.path.join(base_dir,'logging.py')		# 修改前的命名
new_path = os.path.join(base_dir,'logging模块学习.py')	# 修改后的命名
os.rename(old_path,new_path)

【8】获取当前文件/文件夹的详细信息,元信息

os.stat()

import os
base_dir = os.path.dirname(__file__)
new_path = os.path.join(base_dir,'time学习.py')
print(os.stat(base_dir))
print(os.stat(new_path))
# os.stat_result(st_mode=16895, st_ino=3940649674019133, st_dev=258217787, st_nlink=1, st_uid=0, st_gid=0, st_size=4096, st_atime=1713530028, st_mtime=1713530028, st_ctime=1713489566)
# os.stat_result(st_mode=33206, st_ino=2814749767176544, st_dev=258217787, st_nlink=1, st_uid=0, st_gid=0, st_size=1985, st_atime=1713516155, st_mtime=1713515045, st_ctime=1713489582)

【9】获取当前工作目录

os.getcwd()

import os
base_dir = os.path.dirname(__file__)
print(os.getcwd())
# H:\pycharm projects\day\模块学习2

【10】切换工作目录

import os
base_dir = os.path.dirname(__file__)
change_path = os.path.join(os.path.dirname(base_dir),'模块学习')
os.chdir(change_path)
print(os.getcwd())		# H:\pycharm projects\day\模块学习

【11】补充

import os
base_dir = os.path.dirname(__file__)
# 执行cmd命令
print(os.system('dir'))
# ping百度
print(os.popen('ping www.baidu.com'))
# 输出操作系统特定的路径分隔符
print(os.sep)
# 输出当前平台使用的行终止符
print(os.linesep)
# 输出用于分割文件路径的字符串
print(os.pathsep)
# 输出字符串指示当前使用平台
print(os.name)

小结

# 【记住的重点】
# os.path.join() 拼接路径
# os.path.dirname(__file__) 获取当前文件所在的文件夹路径
# os.path.abspath(__file__)获取当前文件所在的文件路径
# os.path.exists() 判断路径是否存在
# os.mkdir() 创建单级文件夹
# os.makedirs() 创建多级文件夹
# os.makedirs(path, exist_ok=True) 自动创建不存在的多级文件夹路径

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值