首页 > 其他分享 >os模块

os模块

时间:2023-12-19 19:13:45浏览次数:34  
标签:old 模块 python file print path os

os模块

(一)文件操作(os)

  • __file__是指当前文件

(二)文件路径相关(path)

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

#获取当前文件路径abspath
# print(os.path.abspath(__file__))#D:\old boy\python\python28基础\day19\02 os模块.py

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

#获取当前文件所在文件夹路径dirname
print(os.path.dirname(__file__))#D:\old boy\python\python28基础\day19

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

#判断当前路径是否存在exists
path=r"D:\old boy\python\python28基础\day19\02 os模块.py"
print(os.path.exists(path))#True

(4)拼接文件路径(join)

#拼接文件路径
path=r"D:\old boy\python\python28基础\day19\02 os模块.py"
print(os.path.join(path,'girl'))#D:\old boy\python\python28基础\day19\02 os模块.py\girl

(5)切割路径(split)

#切割路径split   把最后一个文件单独切割出来
path=r"D:\old boy\python\python28基础\day19\02 os模块.py"
print(os.path.split(path))#('D:\\old boy\\python\\python28基础\\day19', '02 os模块.py')

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

#获取结尾文件/文件夹名
path=r"D:\old boy\python\python28基础\day19\02 os模块.py"
print(os.path.basename(path))#02 os模块.py

(7)当前路径是否是文件(isfile)

#当前文件是否是文件
path=r"D:\old boy\python\python28基础\day19\02 os模块.py"
print(os.path.isfile(path))#True
path=r"D:\old boy\python\python28基础\day19"
print(os.path.isfile(path))#False

(8)当前文件是否为绝对路径(isabs)

#判断当前路径是否是绝对路径
path=r"D:\old boy\python\python28基础\day19\02 os模块.py"
print(os.path.isabs(path))#True
path=r"02 os模块.py"
print(os.path.isabs(path))#False

(9)当前文件是否存在(isdir)

#判断当我文件目录是否存在
#文件的目录不是文件本身
path=r"D:\old boy\python\python28基础\day19"
print(os.path.isdir(path))#True

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

#获取当前文件或目录的最后访问实践
path=r"D:\old boy\python\python28基础\day19\01random.py"
new_path=os.path.getatime(path)
print(new_path)
print(time.strftime("%Y-%m-%d  %H-%M-%S", time.localtime(new_path)))
# 1702710193.7204118
# 2023-12-16  15-03-13

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

#获取当前文件或者目录的创建时间
path=r"D:\old boy\python\python28基础\day19\01random.py"
new_path=os.path.getctime(path)
print(new_path)
print(time.strftime("%Y-%m-%d  %H-%M-%S", time.localtime(new_path)))
# 1702694034.3676443
# 2023-12-16  10-33-54

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

#返回当前文件或路径的最后修改时间
path=r"D:\old boy\python\python28基础\day19\01random.py"
new_path=os.path.getmtime(path)
print(new_path)
print(time.strftime("%Y-%m-%d  %H-%M-%S", time.localtime(new_path)))
# 1702710193.7204118
# 2023-12-16  15-03-13

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

#返回当前文件的大小
path=r"D:\old boy\python\python28基础\day19\01random.py"
new_path=os.path.getsize(path)
print(new_path)#3047

(三)路径操作(os)

(1)创建单级目录(mkdir)

#创建单级目录mkdir
"""只能创建单级目录,多级就报错"""
path=r"D:\old boy\python\python28基础\day19\test"
file=os.path.join(path,'girl')
os.mkdir(file)

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

#创建多级文件夹makedirs
path=r"D:\old boy\python\python28基础\day19\test"
file=os.path.join(path,'su','yh')
os.makedirs(file)

(3)删除多级文件夹(removedirs)

  • 删除多级文件夹:
    • 若目录为空,则删除,并递归到上一级目录。
    • 如若也为空,则删除。
    • 依次类推
#删除多级文件夹目录removedirs
path=r"D:\old boy\python\python28基础\day19\test"
file=os.path.join(path,'su','yh')
os.removedirs(file)

(4)删除单级文件夹rmdir

  • 删除单级空目录,若目录不为空则无法删除,报错
#删除单级文件夹目录removedirs
path=r"D:\old boy\python\python28基础\day19"
file_path=os.path.join(path,'syh')
print(file_path)
os.rmdir(file_path)

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

#列出当前文件夹下所有的文件以及文件夹
path=r"D:\old boy\python\python28基础\day19"
file_list=os.listdir(path)
print(file_list)#['.idea', '01random.py', '02 os模块.py']

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

#删除指定文件remove
path=r"D:\old boy\python\python28基础\day19"
file_list=os.listdir(path)
print(file_list)#['.idea', '01random.py', '02 os模块.py', 'xx']
# os.remove(r"D:\old boy\python\python28基础\day19\xx")
print(file_list)#['.idea', '01random.py', '02 os模块.py']

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

#重命名文件夹/文件rename
path=r"D:\old boy\python\python28基础\day19\xx.py"
os.rename(path,'syh.py')
#D:\old boy\python\python28基础\day19\syh.py

(8)获取文件夹/文件详细信息(stat)

#获取文件夹/文件详细信息stat
path=r"D:\old boy\python\python28基础\day19"
new_file=os.stat(path)
print(new_file)#os.stat_result(st_mode=16895, st_ino=5629499534351777, st_dev=1346239495, st_nlink=1, st_uid=0, st_gid=0, st_size=0, st_atime=1702719594, st_mtime=1702719594, st_ctime=1702694015)


stat 结构:

st_mode: inode 保护模式
st_ino: inode 节点号。
st_dev: inode 驻留的设备。
st_nlink: inode 的链接数。
st_uid: 所有者的用户ID。
st_gid: 所有者的组ID。
st_size: 普通文件以字节为单位的大小;包含等待某些特殊文件的数据。
st_atime: 上次访问的时间。
st_mtime: 最后一次修改的时间。
st_ctime: 由操作系统报告的"ctime"。在某些系统上(如Unix)是最新的元数据更改的时间,在其它系统上(如Windows)是创建时间(详细信息参见平台的文档)。

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

#获取当前工作目录getcwd

file=os.getcwd()
print(file)
#D:\old boy\python\python28基础\day19

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

import os

BASE_DIR = os.path.dirname(__file__)

# 获取当前工作目录,即当前python脚本工作的目录路径
file_path = os.getcwd()
print(file_path)
# E:\PythonProjects\07常用模块学习

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

file_path_new = os.getcwd()
print(file_path_new)
# E:\PythonProjects\07常用模块学习\img

(11)运行shell命令

(1)直接显示system

os.system("ping www.baidu.com")
# ���� Ping www.a.shifen.com [180.101.50.242] ���� 32 �ֽڵ�����:
# ���� 180.101.50.242 �Ļظ�: �ֽ�=32 ʱ��=10ms TTL=52
# ���� 180.101.50.242 �Ļظ�: �ֽ�=32 ʱ��=10ms TTL=52
# ���� 180.101.50.242 �Ļظ�: �ֽ�=32 ʱ��=11ms TTL=52
# ���� 180.101.50.242 �Ļظ�: �ֽ�=32 ʱ��=11ms TTL=52
#
# 180.101.50.242 �� Ping ͳ����Ϣ:
#     ���ݰ�: �ѷ��� = 4���ѽ��� = 4����ʧ = 0 (0% ��ʧ)��
# �����г̵Ĺ���ʱ��(�Ժ���Ϊ��λ):
#     ��� = 10ms��� = 11ms��ƽ�� = 10ms
#
# Process finished with exit code 0

(2)获取执行结果popen

res=os.popen("ping www.baidu.com")
print(res)#<os._wrap_close object at 0x000001A2FAD9AF20>

(四)属性操作(os)

(1)输出操作系统特定的路径分隔符(sep)

import os

print(os.sep)
# \
  • win下为 ""
  • Linux下为 "/"

(2)输出当前平台使用的行终止符(linesep)

import os

print(os.linesep)
  • win下为 "\r\n"
  • Linux下为 "\n"

(3)输出用于分割文件路径的字符串(pathsep)

import os

print(os.pathsep)
# ;
  • win下为 ";"
  • Linux下为 ":"

(4)输出字符串指示当前使用平台(name)

import os

print(os.name)
# nt
  • win下为 'nt'
  • Linux下为 'posix'

标签:old,模块,python,file,print,path,os
From: https://www.cnblogs.com/suyihang/p/17914479.html

相关文章

  • random模块
    random模块(一)导入模块importrandom(二)随机小数默认区间的小数random.random()默认为0-1直接指定区间的小数random.uniform()可以指定起始结束参数(1)默认区间的小数random.random#随机生成默认区间内的小数print(random.random())#0.6827460153816446(2)指定区间的......
  • time模块
    time模块表示时间的三种方式时间戳元组(struct_time)格式化的时间字符串:格式化的时间字符串(FormatString):‘1999-12-06’(1)导入模块importtime(2)时间戳(time)(1)生成时间戳生成时间戳,时间戳是浮点数类型##时间戳##time=time.time()##print(time)......
  • python中导入模块/包的几种方式
    一、模块的导入方式模块就是.py类型的Python文件导入时不需要.py后缀,直接导入文件名即可1.利用import直接导入:语法:importmodule_name使用方式:module_name.class_name或者module.func_name2.利用import导入模块并设置一个别名语法:importmodule_nameasXXX使用方式:XXX.cl......
  • 理解ROS2的坐标转换模块tf2
    0概述tf2是ROS的核心库之一,它记录了所有坐标系的转换关系,包括动态坐标转换tf,和静态坐标转换tf_static;首先,介绍tf2库(即,geometry2)编译/调试环境的搭建步骤;然后,介绍部分的类图结构,和调用时序;1搭建ROS2的编译环境参考:http://docs.ros.org/en/iron/Installation/Ubuntu-Install-D......
  • 支持可视化提取变量,Apipost配置变量不要太简单
    在调试接口时我们需要将响应结果中的某个字段配置为环境变量在其他接口中引用,之前在Apipost中需要配置脚本而在最近Apipost后执行操作中可以进行可视化的断言和变量提取,无需配置繁琐脚本。这里我们在登录接口下配置一条Token环境变量,在后执行脚本-添加操作项-选择提取变量 输......
  • GBDT、XGBoost、LightGBM的区别和联系
    GBDT、XGBoost、LightGBM的区别和联系-简书https://www.jianshu.com/p/765efe2b951a深入理解LightGBM-知乎https://zhuanlan.zhihu.com/p/99069186WelcometoLightGBM’sdocumentation!—LightGBM3.2.1.99documentationhttps://lightgbm.readthedocs.io/en/latest/......
  • 以 Git 为例演示 CentOS 系统安装软件的方式
    前言在Linux系统上安装软件有两种常用的方式。一种是通过包管理工具,直接安装;另一种是先下载源码,然后再手动编译,再安装。本文以Git为例,演示这两种安装软件的方式。使用yum安装Yum是CentOS的包管理工具。使用前先更新下Yum源:yumupdate使用包管理器安装软件非常简单,直接一......
  • Microsoft 365 (原:Office365)家庭版 激活使用
    Microsoft365家庭版是由微软提供的一种订阅式服务,旨在为家庭用户提供全面的办公和生活解决方案。它集成了一系列常用的办公应用、云服务和其他功能,旨在提高用户的生产力和协作能力。以下是Microsoft365家庭版的一些主要特点和组成部分:Office应用套件:包括经典的Office应......
  • Postgresql中PL/pgSQL代码块的语法与使用-声明与赋值、IF语句、CASE语句、循环语句
    场景PostGresSQL简介与Windows上的安装教程:https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/113981563除了标准SQL语句之外,PostgreSQL还支持使用各种过程语言(例如PL/pgSQL、C、PL/Tcl、PL/Python、PL/Perl、PL/Java等)创建复杂的过程和函数,称为存储过程(Store......
  • Numpy模块
    Numpy模块的核心就是基于数组的运算,相比于列表和其他数据结构,数组的运算效率是最高的。常用的数学函数np.pi常数pnp.e常数enp.fabs(arr)  例如:np.fabs(-3) 计算各元素的浮点型绝对值np.ceil(arr) 例如:np.ceil(3.2)对元素向上取整np.floor(arr) 类似ceil 向下取整对......