首页 > 其他分享 >os模块

os模块

时间:2023-12-16 13:46:30浏览次数:28  
标签:__ 模块 BASE file print path os

os模块

【一】文件操作

(1)导入模块

import os

(2)获取当前文件路径(abspath)

  • abspath
file_path = os.path.abspath(__file__)

(3)获取当前文件所在文件夹的路径(dirname)

  • dirname
base_dir = os.path.dirname(__file__)

(4)判断当前路径是否存在(exists)

# 指定一个存在的路径
path_one = 'D:\2023propygo\ATM.py'
base_dir = os.path.exists(path_one)
print(base_dir)# True

# 指定一个不存在的路径
path_one = 'D:\2023propygo'
base_dir = os.path.exists(path_one)
print(base_dir)# False

(5)拼接路径(join)

  • join后面可以跟多个路径
path=os.path.join(r'D:\2023propygo\day\day15\day15','无参装饰器练习.py')

base_dir = os.path.dirname(__file__)
path= os.path.join(base_dir,'img')

(6)切割路径(split)

import os

# 获取当前文件所在路径
BASE_DIR = os.path.abspath(__file__)
# 对路径进行切割 --- 切割成元组
file_path_list = os.path.split(BASE_DIR)
print(file_path_list) # ('D:\\2023propygo', 'test.py')

(7)获取结尾文件/文件夹名(basename)

import os

BASE_DIR = os.path.dirname(__file__)

file_path = os.path.join(BASE_DIR, 'img')
print(file_path)  # D:\2023propygo\img

# 返回path最后的文件名
# 如何 path以/或\结尾,那么就会返回空值。
# 即 os.path.split(path) 的第二个元素
a = os.path.basename(file_path)
print(a)  # img

# 获取当前文件路径
file_path_one = os.path.abspath(__file__)
print(file_path_one)  # D:\2023propygo\test1.py

print(os.path.basename(file_path_one))  # test1.py

(8)判断当前路径是否是文件(isfile)

import os

BASE_DIR = os.path.dirname(__file__)
print(BASE_DIR)  # D:\2023propygo

file_path = os.path.abspath(__file__)
print(file_path)  # D:\2023propygo\test1.py

is_true_one = os.path.isfile(BASE_DIR)
print(is_true_one)  # False

is_true_two = os.path.isfile(file_path)
print(is_true_two)  # True

(9)判断当前路径是否为绝对路径(isabs)

import os

file_path_one = r'D:\2023propygo\ATM.py'
file_path_two = r'test.py'

is_true_one = os.path.isabs(file_path_one)
print(is_true_one)  # True

is_true_two = os.path.isabs(file_path_two)
print(is_true_two)  # False

(10)判断当前文件目录是否存在(isdir)

import os

file_path_one = r'D:\2023propygo\day\test.py'
file_path_two = r'test.py'

is_true_one = os.path.isdir(file_path_one)
print(is_true_one) # False


is_true_two = os.path.isdir(file_path_two)
print(is_true_two) # False

(11)获取当前文件或目录的最后访问时间(getatime)

import os, time

BASE_DIR = os.path.dirname(__file__)
file_path = os.path.abspath(__file__)

file_base_time = os.path.getatime(BASE_DIR)
print(file_base_time)  # 1700898377.9336035
print(time.strftime("%Y-%m-%d  %H-%M-%S", time.localtime(file_base_time)))
# 2023-11-25  15-46-17

file_time = os.path.getatime(file_path)
print(time.strftime("%Y-%m-%d  %H-%M-%S", time.localtime(file_time)))
# 2023-11-25  15-46-17

(12)获取当前文件或者目录的创建时间(getctime)

import os, time

BASE_DIR = os.path.dirname(__file__)
file_path = os.path.abspath(__file__)

file_base_time = os.path.getctime(BASE_DIR)
print(file_base_time)  # 1700831862.5625432
print(time.strftime("%Y-%m-%d  %H-%M-%S", time.localtime(file_base_time)))
# 2023-11-24  21-17-42

file_time = os.path.getctime(file_path)
print(time.strftime("%Y-%m-%d  %H-%M-%S", time.localtime(file_time)))
# 2023-11-25  14-41-54

(13)返回当前文件或路径的最后修改时间(getmtime)

import os, time

BASE_DIR = os.path.dirname(__file__)
file_path = os.path.abspath(__file__)

file_base_time = os.path.getmtime(BASE_DIR)
print(file_base_time)  # 1700831862.5625432
print(time.strftime("%Y-%m-%d  %H-%M-%S", time.localtime(file_base_time)))
# 2023-11-25  15-50-19

file_time = os.path.getmtime(file_path)
print(time.strftime("%Y-%m-%d  %H-%M-%S", time.localtime(file_time)))
# 2023-11-25  15-50-19

(14)返回当前文件的大小(getsize)

import os

BASE_DIR = os.path.dirname(__file__)
file_path = os.path.abspath(__file__)

file_base_time = os.path.getsize(BASE_DIR)
print(file_base_time)  # 0

file_time = os.path.getsize(file_path)
print(file_time)  # 4969

【二】路径操作

(1)创建单级文件夹(mkdir)

import os

BASE_DIR = os.path.dirname(__file__)
print(BASE_DIR)  # D:\2023propygo\day

file_name = 'img'
file_path = os.path.join(BASE_DIR, file_name)
print(file_path)  # D:\2023propygo\day\img

# 判断当前是否存在 file_path 指定路径
if not os.path.exists(file_path):
    # 不存在则新建 路径 (只能创建文件夹)
    os.mkdir(file_path)
    print(f"{file_path} :>>> 已创建")  # D:\2023propygo\day\img :>>> 已创建

print(f"当前路径 :>>>> {os.path.exists(file_path)}")  # 当前路径 :>>>> True

(2)创建多级文件夹(makedirs)

import os

BASE_DIR = os.path.dirname(__file__)
print(BASE_DIR)  # D:\2023propygo\day

file_path = os.path.join(BASE_DIR, 'img', '4k')
print(file_path)  # D:\2023propygo\img\4k

if not os.path.exists(file_path):
    # 多级文件夹创建使用 makedirs
    os.makedirs(file_path)
    print(f"{file_path} :>>> 已创建")  # D:\2023propygo\img\4k :>>> 已创建

print(f"当前路径 :>>>> {os.path.exists(file_path)}")  # 当前路径 :>>>> True

(3)删除单级文件夹(rmdir)

import os

BASE_DIR = os.path.dirname(__file__)

file_name = 'img'
file_path = os.path.join(file_name, '4k')
print(file_path)

file_true_path = os.path.join(BASE_DIR, file_path)
print(os.path.exists(file_true_path))

# 如果文件路径存在会从最后开始删,只删一级
os.rmdir(file_path)

print(os.path.exists(file_true_path))

(4)删除多级文件夹

  • 前提是文件夹里没有文件
import os

BASE_DIR = os.path.dirname(__file__)

file_path = os.path.join(BASE_DIR,'img','4k')
print(file_path)

print(os.path.exists(file_path))

os.removedirs(file_path)
print(os.path.exists(file_path))

(5)列出当前文件夹下的所有文件及文件夹(listdir)

  • 只能列出一级文件夹,看不到别的文件夹内的东西
import os

BASE_DIR = os.path.dirname(__file__)
file_list = os.listdir(BASE_DIR)
print(file_list)
# ['ATM', 'ATM.py', 'ATM1','test.py', 'test1.py']

(6)删除指定文件(remove)

import os

BASE_DIR = os.path.dirname(__file__)

file_list_one = os.listdir(BASE_DIR)
print(file_list_one)
# ['ATM', 'ATM.py', 'ATM1','test.py', 'test1.py']

file_path = os.path.join(BASE_DIR, 'test.py')
os.remove(file_path)

file_list_two = os.listdir(BASE_DIR)
print(file_list_two)
# ['ATM', 'ATM.py', 'ATM1','test1.py']

(7)重命名文件夹/文件(rename)

import os

BASE_DIR = os.path.dirname(__file__)

file_list_one = os.listdir(BASE_DIR)
print(file_list_one)
# ['ATM', 'ATM.py', 'ATM1','test.py', 'img']

file_path = os.path.join(BASE_DIR, 'test.py')
img_file_path = os.path.join(BASE_DIR, 'img')
os.rename(file_path, 'my_test.py')
os.rename(img_file_path, 'my_img')

file_list_two = os.listdir(BASE_DIR)
print(file_list_two)
# ['ATM', 'ATM.py', 'ATM1','my_test.py', 'my_img']

(8)获取当前工作目录(getcwd)

import os

# 获取当前工作目录,即当前python脚本工作的目录路径
file_path = os.getcwd()
print(file_path)  # D:\2023propygo

(9)改变当前工作目录(chdir)

import os

BASE_DIR = os.path.dirname(__file__)

# 获取当前工作目录,即当前python脚本工作的目录路径
file_path = os.getcwd()
print(file_path)
# D:\2023propygo

img_file_path = os.path.join(BASE_DIR, 'img')
os.chdir(img_file_path)

file_path_new = os.getcwd()
print(file_path_new) # D:\2023propygo\img

标签:__,模块,BASE,file,print,path,os
From: https://www.cnblogs.com/ssrheart/p/17904763.html

相关文章

  • random模块
    random模块【一】导入模块importrandom【二】随机小数(1)默认区间的小数(random)importrandom#默认是大于0且小于1之间的小数num=random.random()print(num)#0.50082157211298(2)指定区间的小数(uniform)importrandom#指定为0到5之间的随机小数res=random.u......
  • Centos中Fail2ban配置
    安装可以使用源码编译官网或者yum安装安装(base)[root@wwwfail2ban]#yum-yinstallfail2ban配置#配置(base)[root@wwwfail2ban]#vimjail.conf加入以下内容42[ssh-iptables]43enabled=true44filter=sshd45action=iptables[name=SSH,port=ssh,pr......
  • 嵌入式操作系统的抉择:FreeRTOS、Linux、LiteOS的异同比较
    引言:在嵌入式系统开发中,选择合适的操作系统是至关重要的决策。FreeRTOS、Linux和LiteOS都是嵌入式领域常见的操作系统,各自具有特定的优势和应用场景。本篇博客将深入比较FreeRTOS、Linux和LiteOS之间的异同点,为嵌入式开发者提供更清晰的选择指南。1.FreeRTOS:轻量级实时操作系统Fr......
  • https://avoid.overfit.cn/post/979f42aebee34d8cab04bf591e58d782
    在本文中,我将介绍matplotlib一个非常有价值的用于管理子图的函数——subplot_mosaic()。如果你想处理多个图的,那么subplot_mosaic()将成为最佳解决方案。我们将用四个不同的图实现不同的布局。首先使用Importmatplotlib行导入必要的库。https://avoid.overfit.cn/post/979f42a......
  • [LeetCode] 2482. Difference Between Ones and Zeros in Row and Column
    Youaregivena0-indexedmxnbinarymatrixgrid.A0-indexedmxndifferencematrixdiffiscreatedwiththefollowingprocedure:LetthenumberofonesintheithrowbeonesRowi.LetthenumberofonesinthejthcolumnbeonesColj.Letthenumbero......
  • Zulip: Debugging Zulip-Mobile: Server + Android + IOS
    https://github.com/abaelhe/zuliphttps://github.com/abaelhe/zulip-mobileDebuggingSeeingwhattheappisdoingisanessentialpartofdevelopment.Avarietyoftoolsareavailabletohelpusdothat.Index:OfficialadvicefromReactNativeupstreamDeb......
  • 设计规则:模块化的力量
    这是一本比较冷门的书《设计规则:模块化的力量》,虽然豆瓣上只有58个评价,但是确实能学到很多东西。这本书对我非常深远。不是是投资,创业,还是其他领域,模块化思想都能帮上你。这本书告诉我们生万物的规则。书籍电子版PDF(建议及时保存,避免被和谐):https://pan.quark.cn/s/aa40d59295df......
  • 项目h5端ios操作栏优化解决方案​
    项目h5端ios操作栏优化解决方案一、问题描述不同设备间操作栏差异在标题为"vue项目h5端ios操作栏优化解决方案"的文章中,一级标题是"一、问题描述"。根据这个一级标题,二级标题是"1.1不同设备间操作栏差异"。在这一部分,我们将讨论在vue项目的h5端上,特别是在iOS设备上,不同设备间操作......
  • 实时操作系统(RTOS)在嵌入式开发中的作用与优势实战
    实时操作系统(RTOS)在嵌入式开发中的作用与优势嵌入式系统已经成为我们日常生活中的不可或缺的一部分,从智能手机到汽车控制系统,从家用电器到医疗设备,嵌入式系统无处不在。这些系统通常需要满足严格的时间限制,以便实时响应事件和传感器输入。为了满足这些要求,嵌入式开发者经常依赖于实......
  • Bioinformatics/ Computational Biology /biostats
    BioinformaticsComputationalBiologybiostats 对于这两个专业,我们可以从应用领域来区分:●Biostatistics生物统计学的研究方向可分为两类:统计遗传学和临床统计学;课程中与生物相关的内容很少,更重视学生的量化能力。●而Bioinformatics生物信息学与数据挖......