当前位置: 首页 > 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())

代码输出如下: 

http://www.lryc.cn/news/460508.html

相关文章:

  • Linux系统——lvm逻辑卷
  • 一键快捷回复软件助力客服高效沟通
  • 初识Linux之指令(二)
  • 在深度学习中,Epoch、迭代次数、批次大小(Batch Size)和学习速率(Learning Rate)是影响模型训练效果的重要超参数。
  • 研究学习的循环递进三段论
  • Linux下如何将代码提交至Gitee
  • 【MATLAB源码-第181期】基于matlab的32QAM调制解调系统频偏估计及补偿算法仿真,对比补偿前后的星座图误码率。
  • 24年856电子线路专业课考场回忆
  • el-table表格里面有一条横线
  • QT通过QLocalSocket和QSharedMemory实现进程间通信
  • Python中的数据可视化艺术:用Matplotlib和Seaborn讲故事
  • python机器学习(手写数字识别)
  • 如何针对项目中的技术难点准备面试?——黑马点评为例
  • ARP欺骗的多种手法
  • HCIA——one
  • 【vue】⾃定义指令+插槽+商品列表案例
  • 多线程——线程的等待通知
  • 模态与非模态的对话框
  • C语言练习
  • CyberRt实践之Hello Apollo(Apollo 9.0版本)
  • 【JavaScript】LeetCode:61-65
  • 【SpringAI】(一)从实际场景入门大模型——适合Java宝宝的大模型应用开发
  • 植物大战僵尸杂交版
  • live2d 实时虚拟数字人形象页面显示,对接大模型
  • SpringCloud-持久层框架MyBatis Plus的使用与原理详解
  • Servlet的HttpServletRequest
  • U9销售订单不能带出最新价格出来
  • Jmeter接口测试企业级项目实战day1
  • 接口测试面试题含答案
  • 横板营业执照提取生成