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

[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())

代码输出如下: 


http://www.kler.cn/a/349176.html

相关文章:

  • 腾讯云SDK连麦应用
  • 线上游戏 线下陪玩线下家政陪聊陪诊陪游系统多少钱
  • Vue3中防止按钮重复点击的方式
  • 标准IO练习
  • 已经安装了qt,想添加mingw组件,包含gcc等
  • 开源AI网络爬虫工具Crawl4AI
  • Vs配置opencv库 实例,opencv选用4.9.0版本,vs版本是2022社版,学习笔记不断更新
  • xss三种类型的区别与危害
  • SpringCloud-持久层框架MyBatis Plus的使用与原理详解
  • 基于SpringBoot+Vue的在线视频教育平台的设计与实现(带文档)
  • 本地流量配合美容院打法及生财合伙人推荐
  • 智能扭矩系统在轨道交通行业的应用_SunTorque
  • python入门教程
  • Linux防火墙与SElinux
  • 子组件向父组件传值$emit
  • Flink On kubernetes
  • uni-app 实现APP版本更新的深度解析
  • 【Redis】缓存预热、雪崩、击穿、穿透、过期删除策略、内存淘汰策略
  • Linux `vmstat` 命令详解
  • 7万字Java后端面试题大全(附答案)——持续更新