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

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

简介

os

sys

简介

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

os

一、os.getcwd()

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

import os

print(os.getcwd())

代码输出如下:

二、os.listdir()

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

import os

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

代码输出如下:

三、os.remove()

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

import os

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

四、os.removedirs()

        该函数可以删除目录

import os

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

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

五、os.path.isfile()

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

import os

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

代码输出如下:

六、os.path.isdir()

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

import os

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

代码输出如下:

七、os.path.isabs()

        判断是否是绝对路径

import os

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

代码输出如下:

八、os.path.exists()

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

import os

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

 代码输出如下:

九、os.path.split()

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

import os

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

代码输出如下:

十、os.path.splitext()

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

import os

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

代码输出如下:

十一、os.path.dirname()

         获取路径名

import os

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

代码输出如下:

十二、os.path.abspath()

        获取绝对路径

import os

print(os.path.abspath("test.py"))

代码输出如下:

十三、os.path.basename()

         获取文件名

import os

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

代码输出如下:

十四、os.system()

        远行 shell 命令

import os

print(os.system("dir"))

代码输出如下:

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

十五、os.getenv()

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

import os

print(os.getenv("Path"))

代码输出如下:

即输出这里的值

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

十六、os.environ

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

import os

print(os.environ)

代码输出如下:

十七、os.environ,setdefault()

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

import os

os.environ,setdefault("HOME","/home/jove")

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

十八、os.linesep()

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

import os

print(os.linesep())

代码输出如下:

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

十九、os.name()

        指示你正在使用的平台

import os

print(os.name)

代码传输如下:

不同系统显示如下:

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

二十、os.rename()

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

import os

print(os.rename("old_file_name","new_file_name"))

二十一、os.replace()

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

import os

print(os.replace("old_file_name","new_file_name"))

二十二、os.makedirs()

        创建多级目录

import os

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

代码效果如下:

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

二十三、os.mkdir()

        创建单个目录

import os

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

代码效果如下:

二十四、os.stat()

        获股文件属性

import os

print(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 os

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

代码效果如下:

常见的权限模式如下:

模式权限

0o400

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

二十六、os.path.getsize()

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

import os

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

代码输出如下: 

二十七、os.path.join()

        结合目录名与文件名

import os

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

代码输出如下:

二十八、os.chdir()

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

import os

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

代码输出如下:

二十九、os.get_terminal_size()

        获取当前终端的分辨率

import os

print(os.get_terminal_size())

代码输出如下:

三十、os.kill()

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

import os
import signal

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

常见信号如下:

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

sys

一、sys.argv

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

import sys

print(sys.argv)

代码输出如下:

二、sys.exit()

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

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

import sys

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

代码输出如下:

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

import sys

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

代码输出如下:

三、sys.version

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

import sys

print(sys.version)

代码输出如下:

四、sys.maxsize

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

import sys

print(sys.maxsize)

代码输出如下:

五、sys.path

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

import sys

print(sys.path)

代码输出如下:

六、sys.platform

        返回操作系统平台名称

import sys

print(sys.platform)

代码输出如下: 

常见的 sys.platform 值包括:

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

七、sys.stdout.write()

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

import sys

sys.stdout.write("Please:")

代码输出如下: 

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

八、sys.stdin.readline()

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

import sys

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

代码输出如下:

九、sys.getrecursionlimit()

        获取最大递归层数

import sys

print(sys.getrecursionlimit())

代码输出如下: 

十、sys.setrecursionlimit()

        设置最大递归层数为1200次

import sys

sys.setrecursionlimit(1200)

十一、sys.getdefaultencoding()

        获取解释器默认编码

import sys

print(sys.getdefaultencoding())

代码输出如下: 

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

十二、sys.getfilesystemencoding()

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

import sys

print(sys.getfilesystemencoding())

代码输出如下: 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/891790.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

芝法酱学习笔记(0.7)——harbor与SpringBoot容器化docker部署

前言 之前我们主要讲的jar包部署。使用jar包部署可能导致不同服务互相争抢资源(隔离性),不同服务可能需要不同的jdk环境,有时也会造成困扰。故在微服务时代,我们通常使用docker部署 一、docker安装 docke相关的知识…

sherpa-ncnn 语言模型简单对比

在昨天把系统搞崩溃前,对sherpa-ncnn的中文模型做了一个简单的对比。这次使用的分别是sherpa-ncnn-streaming-zipformer-bilingual-zh-en-2023-02-13(以下简称bilingual-zh-en-2023-02-13)和sherpa-ncnn-streaming-zipformer-small-bilingual…

WPF自定义控件实现的几种方法

Windows Presentation Foundation (WPF) 是微软提供的一种用于构建 Windows 应用程序的开发框架。它以其强大的数据绑定、资源管理和可视化效果处理能力而闻名。在WPF中,自定义控件的实现是一个非常重要的方面,几乎所有的应用程序都会或多或少地需要自定…

哪款宠物空气净化器性价比高?希喂、米家和范罗士哪款更好?

这次我真的不是很想抱怨,是我男朋友真的很过分!真的很过分,差点让我们两个分道扬镳。先听我说,这不是我和他都嫌家里太安静了吗,每天下班后两个人吃完饭就各玩各的手机,生活太无趣了,加上这几年…

【云从】五、负载均衡CLB

文章目录 1、负载均衡2、云负载均衡CLB3、CLB的组成4、CLB的应用场景 1、负载均衡 互联网发展早期,应用服务单机部署就足以负载所有用户的访问需求 如此,部署和运维都简单,但随着用户和访问量的提高,单台服务器的硬件性能是有上限…

【GESP】C++一级练习BCQM3044,字符形状输出

回到一级知识点,用给定字符按指定形状输出。 题目题解详见:https://www.coderli.com/gesp-1-bcqm3044/ 【GESP】C一级练习BCQM3044,字符形状输出 | OneCoder回到一级知识点,用给定字符按指定形状输出。https://www.coderli.com/…

鸿蒙开发 四十五 鸿蒙状态管理(嵌套对象界面更新)

当运行时的状态变量变化,UI重新渲染,在ArkUI中称为状态管理机制,前提是变量必须被装饰器修饰。不是状态变量的所有更改都会引起刷新,只有可以被框架观测到的更改才会引起UI刷新。其中boolen、string、number类型,可观察…

【项目安全设计】软件系统安全设计规范和标准(doc原件)

1.1安全建设原则 1.2 安全管理体系 1.3 安全管理规范 1.4 数据安全保障措施 1.4.1 数据库安全保障 1.4.2 操作系统安全保障 1.4.3 病毒防治 1.5安全保障措施 1.5.1实名认证保障 1.5.2 接口安全保障 1.5.3 加密传输保障 1.5.4终端安全保障 资料获取:私信或者进主页。…

如何从模块内部运行 Pytest

在 Python 中,pytest 是一个强大的测试框架,用于编写和运行测试用例。通常我们会在命令行中运行 pytest,但是有时你可能希望从模块或脚本的内部运行 pytest,比如为了自动化测试或集成到某个工作流程中。 1、问题背景 当你从模块…

Luatools太难了?保姆级教程来啦!

作为由合宙所提供的调试工具,Luatools支持最新固件获取、固件打包、trace打印、单机烧录等功能 此工具适用于合宙所有 4G 模组和 4G GNSS 模组。 一、下载并安装 (一)运行环境要求 此工具运行于win7及以上系统;不支持 Mac和 Linux。 &…

三亚旅游微信小程序的设计与实现

详细视频演示 请联系我获取更详细的演示视频 项目运行截图 技术框架 后端采用SpringBoot框架 Spring Boot 是一个用于快速开发基于 Spring 框架的应用程序的开源框架。它采用约定大于配置的理念,提供了一套默认的配置,让开发者可以更专注于业务逻辑而不…

vulnhub(15):lemonsqueezy(hydra爆破、计划任务提权)

端口 nmap -Pn -p- 192.168.72.173 ​ PORT STATE SERVICE 80/tcp open http MAC Address: 00:0C:29:B8:2D:FC (VMware) 打点 80端口 主页面是apache2的默认页面,没有robots.txt,我们直接扫描目录 gobuster dir -u http://192.168.72.173/ -w /usr/…

SHELL脚本之输出语句的使用

shell脚本能够给用户显示一些信息,就需要输出语句的使用。 1.echo语句 如上图所示,中英文都可以, 如上图所示,在shell脚本中对于转义符的使用应该加上-e的选项,\n表示换行,\t表示电脑键盘上使用tab键隔开的…

24/10/12 算法笔记 AlexNet

AlexNet采用深度网络结构,由8层组成,包括5个卷积和3个全连接层,这种深度结构使得网络能够学习到更复杂的特征表示 1.ReLU激活函数: 首次成功的在较深的网络中使用ReLU激活函数,解决了梯度消失问题,加快了…

华为国际云:全球领先的云服务解决方案

近年来,随着云计算技术的迅猛发展,越来越多的企业开始拥抱云计算,以实现业务的数字化转型和创新。在众多云服务提供商中,华为国际云凭借其强大的技术实力和全球布局,成为了备受瞩目的明星。那么,华为国际云…

Python连接Oracle

Python连接Oracle 可以使用Oracle提供的官方Python驱动程序cx_Oracle。: cx_Oracle官方驱动程序 安装cx_Oracle驱动程序:首先,确保你已经安装了Python解释器。然后,使用pip命令安装cx_Oracle驱动程序。可以在命令行中运行以下…

如何解决JMeter响应数据乱码?

问题: 解决: 1、找到JMeter安装目录下的bin目录 2、 在bin目录下,打开" jmeter.properties "文件 3、搜索"sampleresult.default.encoding" 4、改成"sampleresult.default.encodingUTF-8",去掉前面…

L1练习-鸢尾花数据集处理(分类/聚类)

背景 前文(《AI 自学 Lesson1 - Sklearn(开源Python机器学习包)》)以鸢尾花数据集的处理为例,本文将完善其代码,在使用 sklearn 的部分工具包基础上,增加部分数据预处理、数据分析和数据可视化…

集合框架09:泛型概述、泛型类、泛型接口

1.泛型概述 泛型的本质是参数化类型&#xff0c;把类型作为参数传递&#xff1b; 常见有泛型类、泛型接口、泛型方法 语法&#xff1a;<T,...> T称为类型占位符&#xff0c;表示一种引用类型&#xff1b; 好处&#xff1a;1.提高代码的重用性&#xff1b;2.防止类型类…

Ubuntu22.04环境下源码安装OpenCV 4.8.1

因为项目需要用OpenCV对yolov8模型进行推理&#xff0c;通过DNN模块&#xff0c;之前本地的OpenCV版本是4.5.4&#xff08;好像安装完ROS2 humble之后系统就自带了opencv&#xff09;&#xff0c;加载onnx模型一直报错&#xff0c;网上查询到需要4.7以上&#xff0c;干脆直接升…