当前位置: 首页 > news >正文

[Python学习日记-47] Python 中的系统调用模块—— os 与 sys

[Python学习日记-47] Python 中的系统调用模块

简介

os

sys

简介

        os 模块和 sys 模块提供了很多允许你的程序与操作系统直接交互的功能。下面将进行逐一介绍。

os

一、os.getcwd()

        得到当前工作目录,即当前 Python 脚本工作的目录路径(绝对路径),代码如下

import osprint(os.getcwd())

代码输出如下:

二、os.listdir()

        返回指定目录下的所有文件和目录名,代码如下

import osprint(os.listdir("C:\\Users\\Administrator\\Desktop\\jove_test_module"))

代码输出如下:

三、os.remove()

        该函致用来删除一个文件,删除当前目录下的文件可以直接写文件名,如果要删除其他目录下的文件请用绝对路径

import osos.remove("file_name")    # 删除当前目录下的文件,如果要删除其他目录下的文件请用绝对路径

四、os.removedirs()

        该函数可以删除目录

import osos.removedirs("C:\\Users\\Administrator\\Desktop\\remove_dir")

注意:如果目标目录不为空则会抛出 OSError 错误,多层目录也会抛出该错误,即只能删除一个空的目录。

五、os.path.isfile()

        检验给出的路径是否是一个文件

import osprint(os.path.isfile("C:\\Users\\Administrator\\Desktop\\is_dir"))
print(os.path.isfile("C:\\Users\\Administrator\\Desktop\\is_file"))

代码输出如下:

六、os.path.isdir()

        检验给出的路径是否是一个目录

import osprint(os.path.isdir("C:\\Users\\Administrator\\Desktop\\is_dir"))
print(os.path.isdir("C:\\Users\\Administrator\\Desktop\\is_file"))

代码输出如下:

七、os.path.isabs()

        判断是否是绝对路径

import osprint(os.path.isabs("C:\\Users\\Administrator\\Desktop\\is_dir"))
print(os.path.isabs(".\\is_dir"))

代码输出如下:

八、os.path.exists()

         检验给出的路径是否真实存在

import osprint(os.path.exists("C:\\Users\\Administrator\\Desktop\\is_dir"))
print(os.path.exists("C:\\Users\\Administrator\\Desktop\\not_this_dir"))

 代码输出如下:

九、os.path.split()

        返回一个路径的目录名和文件名

import osprint(os.path.split("C:\\Users\\Administrator\\Desktop\\is_dir"))

代码输出如下:

十、os.path.splitext()

        分离扩展名(后缀),将会返回一个包含路径的文件名和文件的扩展名

import osprint(os.path.splitext("C:\\Users\\Administrator\\Desktop\\is_file.py"))

代码输出如下:

十一、os.path.dirname()

         获取路径名

import osprint(os.path.dirname("C:\\Users\\Administrator\\Desktop\\is_file.py"))

代码输出如下:

十二、os.path.abspath()

        获取绝对路径

import osprint(os.path.abspath("test.py"))

代码输出如下:

十三、os.path.basename()

         获取文件名

import osprint(os.path.basename("C:\\Users\\Administrator\\Desktop\\is_file.py"))

代码输出如下:

十四、os.system()

        远行 shell 命令

import osprint(os.system("dir"))

代码输出如下:

注意:需要区分当前系统是 Windows 还是 Linux,两个系统之间会有 shell 的差异。 

十五、os.getenv()

        读取操作系统环境变量 Path 的值

import osprint(os.getenv("Path"))

代码输出如下:

即输出这里的值

注意:环境变量的读取也需要区分系统,Windows 和 Linux 之间的环境变量是不同的 

十六、os.environ

        返回操作系统所有的环境变量

import osprint(os.environ)

代码输出如下:

十七、os.environ,setdefault()

         设置系统环境变量,仅程序运行时有效

import osos.environ,setdefault("HOME","/home/jove")

代码效果:程序运行期间将家目录变更为 /home/jove

十八、os.linesep()

        给出当前平台使用的行终止符

import osprint(os.linesep())

代码输出如下:

注意:Windows 使用 '\r\n',Linux 和 MAC 使用 '\n'

十九、os.name()

        指示你正在使用的平台

import osprint(os.name)

代码传输如下:

不同系统显示如下:

系统
Windowsnt
Linuxposix
macOS/Unixposix
其它系统具体值需要看具体系统

二十、os.rename()

        重命名,但不会覆盖已存在的同名文件

import osprint(os.rename("old_file_name","new_file_name"))

二十一、os.replace()

        重命名,但会覆盖已存在的同名文件

import osprint(os.replace("old_file_name","new_file_name"))

二十二、os.makedirs()

        创建多级目录

import osos.makedirs("C:\\Users\\Administrator\\Desktop\\makedir1\\makedir2\\makedir3\\file.py")

代码效果如下:

注意:只能创建目录,不能创建文件 

二十三、os.mkdir()

        创建单个目录

import osos.mkdir(r"C:\Users\Administrator\Desktop\makedir1\makedir11")

代码效果如下:

二十四、os.stat()

        获股文件属性

import osprint(os.stat(r"C:\Users\Administrator\Desktop\jove_test_module\setup.py"))

代码输出如下:

os.stat_result(st_mode=33206, st_ino=7036874418158520, st_dev=11972334884292589113, st_nlink=1, st_uid=0, st_gid=0, st_size=453, st_atime=1728873392, st_mtime=1728744251, st_ctime=1728873392) 

二十五、os.chmod()

        修改文件权限与时间戳

import osos.chmod(r"C:\Users\Administrator\Desktop\jove_test_module\setup.py",0o400)

代码效果如下:

常见的权限模式如下:

模式权限

0o400

只读权限
0o600读写权限
0o700读写执行权限
0o755所有者具有读写执行权限,其他用户只有读执行权限

二十六、os.path.getsize()

         获取文件大小,以字节的形式输出

import osprint(os.path.getsize(r"C:\Users\Administrator\Desktop\jove_test_module\setup.py"))

代码输出如下: 

二十七、os.path.join()

        结合目录名与文件名

import osprint(os.path.join(r"C:\Users\Administrator\Desktop\jove_test_module","setup.py"))

代码输出如下:

二十八、os.chdir()

        改变工作目录到指定目录中

import osprint(os.getcwd())
os.chdir(r"C:\Users\Administrator\Desktop\jove_test_module")
print(os.getcwd())

代码输出如下:

二十九、os.get_terminal_size()

        获取当前终端的分辨率

import osprint(os.get_terminal_size())

代码输出如下:

三十、os.kill()

        杀死指定进程,用 PID 来指定,与 Linux 当中的 kill 命令差不多

import os
import signalos.kill(2060,signal.SIGKILL)    # pid(要发送信号的进程的PID(进程ID)),signal(要发送的信号)

常见信号如下:

信号说明
signal.SIGTERM终止进程
signal.SIGKILL/signal.SIGILL强制终止进程
signal.SIGINT跟按下 Ctrl+C 相同的效果

sys

一、sys.argv

        命令行参数列表,第一个元素是程序本身路径,后面就是执行时后面跟的参数

import sysprint(sys.argv)

代码输出如下:

二、sys.exit()

        于终止当前程序的执行,使用方式有两种:

  • 不带参数:直接调用 exit() 函数会立即终止程序的执行,并返回到调用程序的环境中。相当于在程序中遇到了终止语句。

import sysprint("Before exit")
sys.exit()
print("After exit")  # 这行代码不会被执行

代码输出如下:

  • 带一个整数参数:传递一个整数给 exit() 函数,可以返回一个特定的退出代码给调用程序的环境。0表示程序正常终止,非零值表示出现了错误或异常终止。

import sysprint("Before exit")
sys.exit(1)
print("After exit")  # 这行代码不会被执行

代码输出如下:

三、sys.version

        获取 Python 解释程序的版本信息

import sysprint(sys.version)

代码输出如下:

四、sys.maxsize

        输出最大的 int 值,在 Python2 中使用的是 maxint,而在 Python3 中 maxint 被废除了,被 maxsize 代替了

import sysprint(sys.maxsize)

代码输出如下:

五、sys.path

        返回模块的搜索路径,初始化时使用 PYTHONPATH 环境变量的值 

import sysprint(sys.path)

代码输出如下:

六、sys.platform

        返回操作系统平台名称

import sysprint(sys.platform)

代码输出如下: 

常见的 sys.platform 值包括:

  • win32:表示 Windows 操作系统
  • darwin:表示 macOS 操作系统
  • linux:表示 Linux 操作系统
  • cygwin:表示在 Cygwin 环境下的 Windows 系统
  • 其他特定平台的标识符

七、sys.stdout.write()

        标准输出流上写入字符的方法。它接受一个字符串作为参数,并将其写入到标准输出流中,而不会像 print() 函数一样自动添加换行符。

import syssys.stdout.write("Please:")

代码输出如下: 

         相比于 print() 函数,sys.stdout.write() 的优势在于可以实现对输出内容的更精确控制,例如在一行中多次写入而不换行,或者控制输出位置等。但需要注意的是,sys.stdout.write() 接受的参数必须是字符串类型,如果需要输出其他类型的数据,需要先将其转换为字符串。

八、sys.stdin.readline()

        从标准输入流(stdin)中读取一行内容 

import sysval = sys.stdin.readline()[:-1]
print(val)

代码输出如下:

九、sys.getrecursionlimit()

        获取最大递归层数

import sysprint(sys.getrecursionlimit())

代码输出如下: 

十、sys.setrecursionlimit()

        设置最大递归层数为1200次

import syssys.setrecursionlimit(1200)

十一、sys.getdefaultencoding()

        获取解释器默认编码

import sysprint(sys.getdefaultencoding())

代码输出如下: 

        在 Python2 中则为 ASCII,如下图所示

十二、sys.getfilesystemencoding()

        获取内存数据存到文件里的默认编码

import sysprint(sys.getfilesystemencoding())

代码输出如下: 

相关文章:

[Python学习日记-47] Python 中的系统调用模块—— os 与 sys

[Python学习日记-47] Python 中的系统调用模块 简介 os sys 简介 os 模块和 sys 模块提供了很多允许你的程序与操作系统直接交互的功能。下面将进行逐一介绍。 os 一、os.getcwd() 得到当前工作目录,即当前 Python 脚本工作的目录路径(绝对路径&#…...

Linux系统——lvm逻辑卷

Linux系统——lvm逻辑卷 一、lvm逻辑卷1、lvm操作流程2、操作指令 二、逻辑卷操作1、创建逻辑卷1.1 /dev/cloud/openstack 5G xfs /cloud/openstack1.2 /dev/cloud/docker 10G ext4 /cloud/docker 2、逻辑卷扩容2.1 扩容流程2.2 需求一:扩容ext4文件系统的逻辑卷2.3…...

一键快捷回复软件助力客服高效沟通

双十一临近,电商大战一触即发!在这个购物狂欢的热潮中,客服团队的效率至关重要。今天我要和大家分享一个非常实用的快捷回复软件,特别是为电商客服小伙伴们准备的。这款软件能够极大地提高你的工作效率,让你在处理客户…...

初识Linux之指令(二)

一:head指令 head 与 tail 就像它的名字一样的浅显易懂,它是用来显示开头或结尾某个数量的文字区块,head 用来显示档案的 开头至标准输出中,而 tail 想当然尔就是看档案的结尾。 语法:head 【参数】 【文件】 功能&…...

在深度学习中,Epoch、迭代次数、批次大小(Batch Size)和学习速率(Learning Rate)是影响模型训练效果的重要超参数。

1. Epoch 定义:Epoch是指整个训练数据集被完整地用来训练一次。影响:增加Epoch的数量可以使模型更充分地学习数据。然而,过高的Epoch可能导致过拟合,即模型在训练集上表现良好,但在测试集上表现不佳。设置&#xff1a…...

研究学习的循环递进三段论

在研究学习,编程语言、编译器、计算机科学、类型论、集合论等多门学科及分支后,我貌似隐隐约约地感受到,研究学习的过程分为三个阶段,我称之为研究学习的三段论,其中的段,是阶段的意思。对应了,…...

Linux下如何将代码提交至Gitee

首先在gitee中创建自己的仓库. 下面是已经创建好的仓库 然后复制仓库的链接(点击上图克隆/下载) 接下来打开linux, 1.在命令行输入git clone 链接 2. 输入ll,即可看到linux-course项目仓库 3.cd linux-courses(进入项目仓库) 4.在仓库中可以随意增加文件 例如增加test.c文件…...

【MATLAB源码-第181期】基于matlab的32QAM调制解调系统频偏估计及补偿算法仿真,对比补偿前后的星座图误码率。

操作环境: MATLAB 2022a 1、算法描述 在通信系统中,频率偏移是一种常见的问题,它会导致接收到的信号频率与发送信号的频率不完全匹配,进而影响通信质量。在调制技术中,QPSK(Quadrature Phase Shift Keyi…...

24年856电子线路专业课考场回忆

856考试包含了模电与数电两大部分,24年题型结构为14题选择与14填空,上去大约花了半个小时搞定,唯一记得有几个纠结点:1、开关型稳压电路中开关管怎么接是升压,2、字扩展与位扩展的区别。 接下来就是第三部分的分析计算…...

el-table表格里面有一条横线

表格里面 有一条横线&#xff0c; 出现原因&#xff1a;是自定义了表格头.使用了固定列&#xff08;fixed&#xff09;&#xff0c;定宽。就很难受。。。 添加样式文件&#xff1a; <style lang"scss" scoped>::v-deep {.el-table__fixed-right {height: 100%…...

QT通过QLocalSocket和QSharedMemory实现进程间通信

文章目录 QLocalSocket和QLocalServer客户端服务端QSharedMemory加载数据到共享内存从共享内存中读取数据进程间通信(Inter-Process Communication, IPC)是指在不同进程之间进行数据交换和消息传递的机制。由于不同进程之间在内存和资源使用上的隔离,IPC 是操作系统提供的一种…...

Python中的数据可视化艺术:用Matplotlib和Seaborn讲故事

Python中的数据可视化艺术&#xff1a;用Matplotlib和Seaborn讲故事 数据可视化不仅仅是图表的绘制&#xff0c;更是通过视觉形式传达复杂信息的一种艺术。使用Python中的两个强大的库——Matplotlib和Seaborn&#xff0c;可以将数据转化为清晰、优美的图表&#xff0c;帮助我…...

python机器学习(手写数字识别)

# 导包 import matplotlib.pyplot as plt import pandas as pd from sklearn.model_selection import train_test_split from sklearn.neighbors import KNeighborsClassifier import joblib from collections import Counter # 1. 定义函数 show_digit(idx), 用于查看: 数字图…...

如何针对项目中的技术难点准备面试?——黑马点评为例

最核心的&#xff0c;包装和准备 个人项目&#xff0c;怎么包装&#xff1f;一定要写出代码才可以吗&#xff1f; 你可以在系统A中实现就可以&#xff0c;了解其中实现的细节&#xff0c;怎么跟面试官对线等等&#xff0c;这些话术到位了之后&#xff0c;再把它融入到系统B&a…...

ARP欺骗的多种手法

学习参考&#xff1a; ARP欺骗的各种d玩法-CSDN博客 https://juejin.cn/post/7383702153892954164 一、什么是ARP欺骗 1.什么是ARP&#xff1f; ARP (Address Resolution Protocol) 是一种网络层协议&#xff0c;用于将 IP 地址转换为物理地址&#xff08;MAC 地址&#xff0…...

HCIA——one

推荐电影&#xff1a;《模仿游戏》《黑客帝国》《头号玩家》 图灵机每秒五千次计算&#xff0c;当今计算机4080ti算力每秒21万亿次的计算。 OSI七层模型 应用层&#xff1a;人机交互&#xff0c;将抽象语言转换成编码 表示层&#xff1a;将编码转换成二进制 介质访问控制层…...

【vue】⾃定义指令+插槽+商品列表案例

代码获取 07-⾃定义指令插槽商品列表案例 ⼀、⾃定义指令 1. 基本使⽤ 1.1 指令介绍 内置指令&#xff1a;v-model、v-for、v-bind、v-on… 这都是Vue给咱们内置的⼀些指令&#xff0c;可以直接使⽤ ⾃定义指令&#xff1a;同时Vue也⽀持让开发者&#xff0c;⾃⼰注册⼀些…...

多线程——线程的等待通知

目录 前言 一、wait() 方法 1.方法介绍 2.代码示例 3.wait 和 sleep 的区别 二、notify() 方法 1.方法介绍 2.代码示例 三、notifyAll() 方法 1.方法介绍 2.代码示例 结尾 前言 由于线程之间是抢占式执行的&#xff0c;因此线程之间的执行顺序是难以预知的&#xf…...

模态与非模态的对话框

本文学习自&#xff1a; 《Qt Creato快速入门》 #include "widget.h" #include <QApplication>int main(int argc, char *argv[]) {QApplication a(argc, argv);Widget w;w.show();return a.exec(); }1. #include "widget.h" #include "ui_w…...

C语言练习

题目&#xff1a; 1.运用switch选择语句&#xff0c;编写一段C语言&#xff0c;请根据输入的数字&#xff0c;显示相应的星期日&#xff0c;如果数字所对应的星期日并不存在请显示“抱歉&#xff0c;您输入的内容并不存在。” 分析&#xff1a;1.在本题中&#xff0c;要运用到…...

JavaSec-RCE

简介 RCE(Remote Code Execution)&#xff0c;可以分为:命令注入(Command Injection)、代码注入(Code Injection) 代码注入 1.漏洞场景&#xff1a;Groovy代码注入 Groovy是一种基于JVM的动态语言&#xff0c;语法简洁&#xff0c;支持闭包、动态类型和Java互操作性&#xff0c…...

stm32G473的flash模式是单bank还是双bank?

今天突然有人stm32G473的flash模式是单bank还是双bank&#xff1f;由于时间太久&#xff0c;我真忘记了。搜搜发现&#xff0c;还真有人和我一样。见下面的链接&#xff1a;https://shequ.stmicroelectronics.cn/forum.php?modviewthread&tid644563 根据STM32G4系列参考手…...

postgresql|数据库|只读用户的创建和删除(备忘)

CREATE USER read_only WITH PASSWORD 密码 -- 连接到xxx数据库 \c xxx -- 授予对xxx数据库的只读权限 GRANT CONNECT ON DATABASE xxx TO read_only; GRANT USAGE ON SCHEMA public TO read_only; GRANT SELECT ON ALL TABLES IN SCHEMA public TO read_only; GRANT EXECUTE O…...

【C语言练习】080. 使用C语言实现简单的数据库操作

080. 使用C语言实现简单的数据库操作 080. 使用C语言实现简单的数据库操作使用原生APIODBC接口第三方库ORM框架文件模拟1. 安装SQLite2. 示例代码:使用SQLite创建数据库、表和插入数据3. 编译和运行4. 示例运行输出:5. 注意事项6. 总结080. 使用C语言实现简单的数据库操作 在…...

让AI看见世界:MCP协议与服务器的工作原理

让AI看见世界&#xff1a;MCP协议与服务器的工作原理 MCP&#xff08;Model Context Protocol&#xff09;是一种创新的通信协议&#xff0c;旨在让大型语言模型能够安全、高效地与外部资源进行交互。在AI技术快速发展的今天&#xff0c;MCP正成为连接AI与现实世界的重要桥梁。…...

UR 协作机器人「三剑客」:精密轻量担当(UR7e)、全能协作主力(UR12e)、重型任务专家(UR15)

UR协作机器人正以其卓越性能在现代制造业自动化中扮演重要角色。UR7e、UR12e和UR15通过创新技术和精准设计满足了不同行业的多样化需求。其中&#xff0c;UR15以其速度、精度及人工智能准备能力成为自动化领域的重要突破。UR7e和UR12e则在负载规格和市场定位上不断优化&#xf…...

vue3+vite项目中使用.env文件环境变量方法

vue3vite项目中使用.env文件环境变量方法 .env文件作用命名规则常用的配置项示例使用方法注意事项在vite.config.js文件中读取环境变量方法 .env文件作用 .env 文件用于定义环境变量&#xff0c;这些变量可以在项目中通过 import.meta.env 进行访问。Vite 会自动加载这些环境变…...

基于 TAPD 进行项目管理

起因 自己写了个小工具&#xff0c;仓库用的Github。之前在用markdown进行需求管理&#xff0c;现在随着功能的增加&#xff0c;感觉有点难以管理了&#xff0c;所以用TAPD这个工具进行需求、Bug管理。 操作流程 注册 TAPD&#xff0c;需要提供一个企业名新建一个项目&#…...

【Linux】Linux 系统默认的目录及作用说明

博主介绍&#xff1a;✌全网粉丝23W&#xff0c;CSDN博客专家、Java领域优质创作者&#xff0c;掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域✌ 技术范围&#xff1a;SpringBoot、SpringCloud、Vue、SSM、HTML、Nodejs、Python、MySQL、PostgreSQL、大数据、物…...

C++ 设计模式 《小明的奶茶加料风波》

&#x1f468;‍&#x1f393; 模式名称&#xff1a;装饰器模式&#xff08;Decorator Pattern&#xff09; &#x1f466; 小明最近上线了校园奶茶配送功能&#xff0c;业务火爆&#xff0c;大家都在加料&#xff1a; 有的同学要加波霸 &#x1f7e4;&#xff0c;有的要加椰果…...