python的os模块详细解读

这篇具有很好参考价值的文章主要介绍了python的os模块详细解读。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

os 模块

os是“operating system”的缩写,os模块提供各种 Python 程序与操作系统进行交互的接口,使用os模块,一方面可以方便地与操作系统进行交互,另一方面页可以极大增强代码的可移植性

import os

#system() 在python中执行系统命令 相当于运行shell命令,直接显示。在linux里面执行没什么问题,但是在Windows里面,由于编码是GBK,导致中文不能正常显示。Windows里面可以使用popen来操作

os.system("ifconfig")  # linux
# os.system("ipconfig") windows
# os.system("rm -rf ceshi.txt")

python的os模块详细解读,python基础,python,开发语言,os模块
python的os模块详细解读,python基础,python,开发语言,os模块

Windows里面乱码
python的os模块详细解读,python基础,python,开发语言,os模块

popen()

执行系统命令返回对象,通过read方法读出字符串。可以自动转换编码
os.popen() 方法用于从一个命令打开一个管道。
在Unix,Windows中有效
语法
popen()方法语法格式如下:

os.popen(command[, mode[, bufsize]])
1
参数
command – 使用的命令。
mode – 模式权限可以是 ‘r’(默认) 或 ‘w’。
bufsize – 指明了文件需要的缓冲大小:0意味着无缓冲;1意味着行缓冲;其它正值表示使用参数大小的缓冲(大概值,以字节为单位)。
负的bufsize意味着使用系统的默认值,一般来说,对于tty设备,它是行缓冲;对于其它文件,它是全缓冲。如果没有改参数,使用系统的默认值。

返回值
返回一个文件描述符号为fd的打开的文件对象

obj = os.popen(“ipconfig”)
print(obj)
print(obj.read())

python的os模块详细解读,python基础,python,开发语言,os模块

listdir()

列出指定目录下的所有文件和目录,包括隐藏文件,并以列表方式打印 ***
lst = os.listdir()
print(lst)

python的os模块详细解读,python基础,python,开发语言,os模块

可以指定目录:
python的os模块详细解读,python基础,python,开发语言,os模块

linux下
python的os模块详细解读,python基础,python,开发语言,os模块

getcwd()

获取当前工作目录绝对路径,即当前python脚本工作的目录绝对路径 ***
“”“/mnt/hgfs/python32_gx/day16"”"path
#路径
res = os.getcwd()
print(res)
python的os模块详细解读,python基础,python,开发语言,os模块

#获取当前python脚本的路径 + 文件名 ***
print(file)
python的os模块详细解读,python基础,python,开发语言,os模块

linux下
python的os模块详细解读,python基础,python,开发语言,os模块

chdir()

改变当前脚本工作目录;相当于shell下cd
os.chdir(“/home/wangwen/mywork”)
os.system(“touch 2.txt”)
python的os模块详细解读,python基础,python,开发语言,os模块
python的os模块详细解读,python基础,python,开发语言,os模块

environ

获取或修改环境变量

[windows]
(1)右键qq属性找路径
(2)右键我的电脑属性->高级系统设置->环境变量->path 打开环境变量添加对应路径
(3)cmd => QQScLauncher

[linux]
(1)在家目录中创建个文件夹,里面创建个文件wangwen,写入ifconfig
(2)增加wangwen的可执行权限 chmod 777 wangwen 测试一下 sudo ./wangwen
(3)添加环境变量在os.environ[“PATH”] 中拼接wangwen所有的绝对路径
(4)os.system(“wangwen”)

总结: 环境变量path的好处是,让系统自动的找到该命令的实际路径进行执行;

print(os.environ[“PATH”])

environ(
{
‘PATH’: ‘/home/wangwen/bin:/home/wangwen/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin’,
‘XAUTHORITY’: ‘/home/wangwen/.Xauthority’,
‘XMODIFIERS’: ‘@im=fcitx’, ‘XDG_DATA_DIRS’: ‘/usr/share/ubuntu:/usr/share/gnome:/usr/local/share/:/usr/share/:/var/lib/snapd/desktop’,
‘GDMSESSION’: ‘ubuntu’, ‘MANDATORY_PATH’: ‘/usr/share/gconf/ubuntu.mandatory.path’, ‘GTK_IM_MODULE’: ‘fcitx’,
‘DBUS_SESSION_BUS_ADDRESS’: ‘unix:abstract=/tmp/dbus-5JjXbZOpKC’, ‘DEFAULTS_PATH’: ‘/usr/share/gconf/ubuntu.default.path’,
‘XDG_CURRENT_DESKTOP’: ‘Unity’, ‘UPSTART_SESSION’: ‘unix:abstract=/com/ubuntu/upstart-session/1000/1603’, ‘QT4_IM_MODULE’: ‘fcitx’,
‘QT_LINUX_ACCESSIBILITY_ALWAYS_ON’: ‘1’, ‘LOGNAME’: ‘wangwen’, ‘JOB’: ‘unity-settings-daemon’, ‘PWD’: ‘/mnt/hgfs/python32_gx/day16’,
‘IM_CONFIG_PHASE’: ‘1’, ‘PYCHARM_HOSTED’: ‘1’, ‘LANGUAGE’: ‘zh_CN:zh’, ‘PYTHONPATH’: ‘/home/wangwen/pylianxi’, ‘SHELL’: ‘/bin/bash’, ‘GIO_LAUNCHED_DESKTOP_FILE’: ‘/home/wangwen/.local/share/applications/jetbrains-pycharm-ce.desktop’, ‘INSTANCE’: ‘’, ‘GTK2_MODULES’: ‘overlay-scrollbar’, ‘UPSTART_INSTANCE’: ‘’, ‘GNOME_DESKTOP_SESSION_ID’: ‘this-is-deprecated’, ‘GTK_MODULES’: ‘gail:atk-bridge:unity-gtk-module’, ‘CLUTTER_IM_MODULE’: ‘xim’,
‘XDG_SESSION_PATH’: ‘/org/freedesktop/DisplayManager/Session0’,
‘COMPIZ_BIN_PATH’: ‘/usr/bin/’, ‘SESSIONTYPE’: ‘gnome-session’, ‘XDG_SESSION_DESKTOP’: ‘ubuntu’, ‘SHLVL’: ‘0’,
‘COMPIZ_CONFIG_PROFILE’: ‘ubuntu’, ‘UPSTART_JOB’: ‘unity7’, ‘QT_IM_MODULE’: ‘fcitx’,
‘XDG_CONFIG_DIRS’: ‘/etc/xdg/xdg-ubuntu:/usr/share/upstart/xdg:/etc/xdg’, ‘GNOME_KEYRING_CONTROL’: ‘’, ‘LANG’: ‘zh_CN.UTF-8’, ‘XDG_SEAT_PATH’: ‘/org/freedesktop/DisplayManager/Seat0’, ‘XDG_SESSION_TYPE’: ‘x11’, ‘XDG_SESSION_ID’: ‘c2’, ‘DISPLAY’: ‘:0’, ‘GDM_LANG’: ‘zh_CN’, ‘PYTHONIOENCODING’: ‘UTF-8’, ‘XDG_GREETER_DATA_DIR’: ‘/var/lib/lightdm-data/wangwen’,
‘UPSTART_EVENTS’: ‘xsession started’, ‘SESSION’: ‘ubuntu’, ‘GPG_AGENT_INFO’: ‘/home/wangwen/.gnupg/S.gpg-agent:0:1’, ‘DESKTOP_SESSION’: ‘ubuntu’, ‘USER’: ‘wangwen’, ‘GIO_LAUNCHED_DESKTOP_FILE_PID’: ‘12487’, ‘QT_ACCESSIBILITY’: ‘1’, ‘SSH_AUTH_SOCK’: ‘/run/user/1000/keyring/ssh’, ‘XDG_SEAT’: ‘seat0’, ‘PYTHONUNBUFFERED’: ‘1’, ‘QT_QPA_PLATFORMTHEME’: ‘appmenu-qt5’, ‘XDG_RUNTIME_DIR’: ‘/run/user/1000’, ‘XDG_VTNR’: ‘7’, ‘HOME’: ‘/home/wangwen’, ‘GNOME_KEYRING_PID’: ‘’
}
)
“”"
添加环境路径

os.environ[“PATH”] += “:/home/wangwen/mywork”
os.system(“wangwen”)
这种方式,脚本执行完就消失了,只是局部变量,不能真正修改系统的环境变量
python的os模块详细解读,python基础,python,开发语言,os模块

Windows获取环境变量
python的os模块详细解读,python基础,python,开发语言,os模块

Linux下
python的os模块详细解读,python基础,python,开发语言,os模块
python的os模块详细解读,python基础,python,开发语言,os模块

os 模块属性

1、name 获取系统标识

linux,mac ->posix windows -> nt
print(os.name)
python的os模块详细解读,python基础,python,开发语言,os模块

2、sep 获取路径分割符号

linux,mac -> / window-> \ ***
print(os.sep)
python的os模块详细解读,python基础,python,开发语言,os模块

3、linesep 获取系统的换行符号

linux,mac -> \n window->\r\n 或 \n
print(repr(os.linesep))

4、其它的一些方法

os.chdir(“dirname”) 改变当前脚本工作目录;相当于shell下cd

os.curdir 返回当前目录: (’.’)
os.pardir 获取当前目录的父目录字符串名:(’…’)
os.makedirs(‘dirname1/dirname2’) 可递归创建目录

python的os模块详细解读,python基础,python,开发语言,os模块

os.removedirs(‘dirname1’) 若目录为空,则删除,并递归到上一级目录,如若也为空,则删除,依此类推 os.removedirs()是python标准库os的方法,
可以用来递归删除多级目录(什么是递归删除,该怎么理解,可参考下方实例代码及解析),注意,要删除的必须是空目录(空文件夹)。如果要删除的目录不存在,python将抛出FileNotFoundError

os.mkdir(‘dirname’) 生成单级目录;相当于shell中mkdir dirname
os.rmdir(‘dirname’) 删除单级空目录,若目录不为空则无法删除,报错;相当于shell中rmdir dirname
os.remove() 删除一个文件
os.rename(“oldname”,“newname”) 重命名文件/目录
python的os模块详细解读,python基础,python,开发语言,os模块

os.stat(‘path/filename’) 获取文件/目录信息
python的os模块详细解读,python基础,python,开发语言,os模块
python的os模块详细解读,python基础,python,开发语言,os模块

os.linesep 输出当前平台使用的行终止符,win下为"\t\n",Linux下为"\n"
os.pathsep 输出用于分割环境变量文件路径的字符串 win下为;, Linux下为:

import sys
# 打印环境变量路径
# print(sys.path)

# 打印参数,以列表方式返回,每个元素都是字符串
print(sys.argv)

python中argv的用法
sys.argv可以用来获取命令行参数,其中sys.argv[0]为脚本名,即python文件名,
列表中的其他值为传入的参数值,一般定义方式为

script, arg1, arg2, arg3 = argv
这种方式显式地定义了参数名称和参数数量,也可以不显式定义argv的参数,
即直接往命令行里面传参数,然后从argv[]列表中取出参数即可,传参

#命令行界面
python test.py arg1 arg2 arg3
则在agrv的列表中,参数依次为argv[0]是test.py,argv[1]是arg1,依次类推

取参数内容

print('参数个数: ', len(sys.argv), '个参数')
print('参数列表: ', str(sys.argv))

python的os模块详细解读,python基础,python,开发语言,os模块

执行脚本 后面跟参数,打印出一个列表,第一次参数是脚本名称,第二各参数以及之后,都是携带的参数

python的os模块详细解读,python基础,python,开发语言,os模块

os 模块 (文件操作) 新建/删除

import os
os.chdir("/home/wangwen/mywork")
# -- os模块具有 新建/删除/
#os.mknod   创建文件,为的是在所有系统中创建文件,但是在Windows里面的不能兼容
# os.mknod("1.txt")



#os.remove  删除文件,这个在Windows里面可以用
# os.remove("1.txt")

#os.mkdir   创建目录(文件夹)  Windows里面可用
# os.mkdir("ceshi111")

python的os模块详细解读,python基础,python,开发语言,os模块

#os.rmdir   删除目录(文件夹)  只能删除空目录
# os.rmdir("ceshi111")

#os.rename  对文件,目录重命名
# os.rename("2.txt","3.txt")

#os.makedirs   递归创建文件夹
# os.makedirs("a/b/c/d/e/f")

#os.removedirs 递归删除文件夹(空文件夹)
# os.removedirs("a/b/c/d/e/f")

shutil模块 复制/移动

shutil 是 python 中的高级文件操作模块,与os模块形成互补的关系,os主要提供了文件或文件夹的新建、删除、查看等方法,还提供了对文件以及目录的路径操作。
shutil模块提供了移动、复制、 压缩、解压等操作,恰好与os互补,共同一起使用,基本能完成所有文件的操作。是一个非常重要的模块。

import shutil
#copyfileobj(fsrc, fdst[, length=16*1024])  复制文件 (length的单位是字符(表达一次读多少字符/字节))
"""
fp_src = open("3.txt",mode="r",encoding="utf-8")
fp_dst = open("4.txt",mode="w",encoding="utf-8")
shutil.copyfileobj(fp_src,fp_dst)
"""

#copyfile(src,dst)   #单纯的仅复制文件内容 , 底层调用了 copyfileobj
# shutil.copyfile("4.txt","5.txt")

#copymode(src,dst)   #单纯的仅复制文件权限 , 不包括内容  (虚拟机共享目录都是默认777)
"""注意: 要先有两个文件才可以,不会默认创建"""
shutil.copymode("4.txt","5.txt")


#copystat(src,dst)   #复制所有状态信息,包括权限,组,用户,修改时间等,不包括内容
shutil.copystat("4.txt","5.txt")


#copy(src,dst)       #复制文件权限和内容
shutil.copy("5.txt","6.py")


#copy2(src,dst)      #复制文件权限和内容,还包括权限,组,用户,时间等
shutil.copy2("5.txt","7.py")



#copytree(src,dst)   #拷贝文件夹里所有内容(递归拷贝)。
# shutil.copytree("lianxi","lianxi2")


#rmtree(path)        #删除当前文件夹及其中所有内容(递归删除)  ,目录中有文件也能递归删除,不能删除文件否则报错
# shutil.rmtree("lianxi2")

python的os模块详细解读,python基础,python,开发语言,os模块

#move(path1,paht2)   #移动文件或者文件夹,权限也附带移动
# shutil.move("7.py","lianxi/888.php")
shutil.move("7.py","/888.php")

os.path 路径模块

import os

pathvar = "/home/wangwen/mywork/ceshi.py"
pathvar = __file__
#basename() 返回文件名部分
res = os.path.basename(pathvar)
print(res)

python的os模块详细解读,python基础,python,开发语言,os模块

#dirname() 返回路径部分
res = os.path.dirname(pathvar)
print(res)
python的os模块详细解读,python基础,python,开发语言,os模块

basename和dirname在框架django和flask中使用比较多

#split() 将路径拆分成单独的路径部分和文件名部分 组合成一个元组
print(os.path.split(__file__))

python的os模块详细解读,python基础,python,开发语言,os模块

python的os模块详细解读,python基础,python,开发语言,os模块

#os.sep将多个路径和文件组成新的路径 可以自动通过不同的系统加不同的斜杠 linux / windows\ ***
path1 = “home”
path2 = “wangwen”
path3 = “mywork”
pathvar = path1 + os.sep + path2 + os.sep + path3
print(pathvar)

#用join改造,路径分隔符会根据系统自动添加,不用自己手动加了
path_new = os.path.join(path1,path2,path3)
print(path_new)

python的os模块详细解读,python基础,python,开发语言,os模块

python的os模块详细解读,python基础,python,开发语言,os模块

#splitext() 将路径分割为后缀和其他部分 (了解) 方便取文件后缀,以最后一个 . 后面为后缀 可以使用str的split方法根据 . 分隔取代
pathvar = “/home/wangwen/mywork/ceshi.py”
print( os.path.splitext(pathvar) )
print( pathvar.split(“.”)[-1] )

python的os模块详细解读,python基础,python,开发语言,os模块

os.path.realpath()
Python中的方法用于通过消除路径中遇到的任何符号链接来获取指定文件名的规范路径。

#getsize() 获取文件的大小 ***
#获取路径

#pathvar = os.path.dirname(file) # 方法一
pathvar = os.getcwd() # 方法二
path_new = os.path.join(pathvar,“2.py”)
print(path_new)

#计算文件大小,得到的是字节,int类型
res = os.path.getsize(path_new)
print(pathvar)
res = os.path.getsize(“/mnt/hgfs/python32_gx/day14”)
print(res)
python的os模块详细解读,python基础,python,开发语言,os模块

python的os模块详细解读,python基础,python,开发语言,os模块

#isdir() 检测路径是否是一个文件夹 返回True或者False***
res = os.path.isdir(“/mnt/hgfs/python32_gx/day14”)
print(res)
python的os模块详细解读,python基础,python,开发语言,os模块

#isfile() 检测路径是否是一个文件 ***
res = os.path.isfile(“/mnt/hgfs/python32_gx/day16/1.py”)
print(res)

#islink() 检测路径数否是一个链接
res = os.path.islink(“/home/wangwen/mywork/1122.py”)
print(res)
python的os模块详细解读,python基础,python,开发语言,os模块
python的os模块详细解读,python基础,python,开发语言,os模块

#getctime() [windows]文件的创建时间,[linux]权限的改动时间(返回时间戳)
import time
res = os.path.getctime(“/home/wangwen/mywork/4.txt”)
python的os模块详细解读,python基础,python,开发语言,os模块

#getmtime() 获取文件最后一次修改时间(返回时间戳)
res = os.path.getmtime(“/home/wangwen/mywork/4.txt”)

#getatime() 获取文件最后一次访问时间(返回时间戳)
res = os.path.getatime(“/home/wangwen/mywork/4.txt”)
print(res)
print(time.ctime(res))

#exists() 检测指定的路径是否存在 ,文件目录都可以检测***
res = os.path.exists(“/home/wangwen/mywork/4.txt”)
#res = os.path.exists(“4.txt”)
print(res,“<============>”)

python的os模块详细解读,python基础,python,开发语言,os模块

#isabs() 检测一个路径是否是绝对路径
res = os.path.isabs(“2.py”)
print(res)
python的os模块详细解读,python基础,python,开发语言,os模块

#abspath() 将相对路径转化为绝对路径,前提是该文件要在当前python的工作目录,或者切换目录后的目录。不然计算出的绝对路径是错误的
res = os.path.abspath(“2.py”)
print(res)
python的os模块详细解读,python基础,python,开发语言,os模块

pathvar = “2.py”
if not os.path.isabs(pathvar):
abs_path = os.path.abspath(“2.py”)
print(abs_path)
python的os模块详细解读,python基础,python,开发语言,os模块文章来源地址https://www.toymoban.com/news/detail-801803.html

到了这里,关于python的os模块详细解读的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Python os模块

    Python的os模块是一个标准库模块,用于提供与操作系统相关的功能(相当于接口)。os模块允许Python程序与文件系统、目录结构、进程管理等操作系统级别的功能进行交互。 文件和目录操作 创建、删除、重命名文件和目录; 获取文件和目录的属性信息,如文件大小、权限等;

    2024年01月19日
    浏览(47)
  • 17 Python的os模块

    概述         在上一节,我们介绍了如何在Python中使用多线程,包括:threading模块、使用线程、创建自定义线程、线程同步等内容。在这一节,我们将介绍Python的os模块。os模块是一个非常强大且有用的模块,它提供了许多与操作系统交互的功能。通过os模块,我们可以轻

    2024年02月07日
    浏览(38)
  • python的os模块详解

            本章介绍python自带模块os,os为操作系统 operating system 的简写,意为python与电脑的交互。主要学习的函数有 os.getcwd()、os.chdir()、os.path.basename()、os.path.join()、os.path.exists()、os.path.isdir()、os.path.isfile()、os.listdir()、os.walk()、os.scandir()、os.stat()、os.mkdir()、os.makedirs()、os.

    2024年02月11日
    浏览(35)
  • python os模块获取文件路径

    1、 # 获取当前工作目录的上一级目录 dir_path = os.path.dirname(os.path.abspath(\\\'.\\\')) 2、获取当前路径: 3、获取当前路径的文件名: file_name = os.path.basename(os.getcwd()) 获取当前路径下所有文件名: file_names = os.listdir(os.getcwd()) 4、字符串正则化 字符串正则化(string normalization)是指将不同

    2024年02月14日
    浏览(38)
  • 【Go 基础篇】Go语言包详解:模块化开发与代码复用

    在Go语言中, 包(Package) 是一种用于组织代码的机制,用于将相关的函数、类型和变量等组织在一起,以便于模块化开发和代码复用。包的使用能够使程序结构更加清晰、可维护性更高,同时也是Go语言强调的一项重要特性。本篇博客将深入探讨Go语言中包的相关知识,包括

    2024年02月11日
    浏览(47)
  • Python必知必会 os 模块详解

    ❤️ 作者简介 :大家好我是小鱼干儿♛是一个热爱编程、热爱算法的大三学生,蓝桥杯国赛二等奖获得者 🐟 个人主页 :https://blog.csdn.net/qq_52007481 ⭐ 个人社区 :【小鱼干爱编程】 🔥 算法专栏 :算法竞赛进阶指南 💯 刷题网站 :市面上的刷题网站有很多如何选择一个适

    2024年02月03日
    浏览(54)
  • python-os模块学习,全

    目前,计算机上主流的操作系统有Windows、Unix、Mac OS等,os模块为多操作系统的访问提供了相关功能的支持,涉及对文件相关操作功能的实现,系统访问path路径的操作,shell命令行操作,Linux扩展属性的操作,流程管理,CPU等硬件相关信息的获取,基于操作系统的真正的随机数

    2024年01月23日
    浏览(37)
  • Python模块和包:sys模块、os模块和变量函数的使用

    模块化指将一个完整的程序分解为一个一个小的模块,通过将模块组合,来搭建出一个完整的程序。模块化具有方便开发、维护和复用的优点。在Python中,每个py文件就是一个模块。 在一个模块中引入外部模块有两种方式: import 模块名 和 import 模块名 as 模块别名 。后者可以

    2024年02月08日
    浏览(33)
  • Python常用OS库之path模块学习

    学习python没有太多捷径,有也只有技巧,更重要的是要多学多练,个人觉得练更重要,读万卷书不如行万里路。编程是一门技能,所以除了看还要多实践,写得多了自然也就有了路。 如果看全部的标准库文档,可以访问这个链接 os --- 多种操作系统接口 — Python 3.12.3 文档 接

    2024年04月14日
    浏览(41)
  • 【100天精通python】Day20:文件及目录操作_os模块和os.psth模块, 文件路径拼接,目录操作

    目录 专栏导读  1 文件的目录操作  os模块的一些操作目录函数​编辑

    2024年02月14日
    浏览(52)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包