zl程序教程

您现在的位置是:首页 >  后端

当前栏目

Python 对linux系统操作

2023-06-13 09:12:14 时间

一、os中常用属性和方法

作用:包含了基本的操作系统功能,提供了非常丰富的方法用来处理文件和目录

属性

名称

说明

name

操作系统的类型,nt表示windows,posix表示Linux、Unix

uname

获取操作系统的信息,linux、Unix下使用

environ

获取系统中的环境变量,environ.get()可以获取环境变量的值

curdir

返回当前的目录

方法

名称

说明

getcwd()

返回当前工作目录的绝对路径

listdir()

返回指定目录下的所有文件和目录

mkdir()

创建指定目录,注意目录已经存在时会报错,目录路径中存在不存在的层级时报错

rmdir()

删除目录,注意目录不存在则报错

rename()

重命名

stat()

获取文件属性

remove()

删除普通文件

system()

运行shell命令

示例

<span class="hljs-keyword">import</span> os

<span class="hljs-comment"># 操作系统的类型</span>
<span class="hljs-comment"># nt     windows</span>
<span class="hljs-comment"># posix  Linux、Unix</span>
print(os.name)
<span class="hljs-comment"># 获取操作系统的信息,linux、Unix下使用</span>
print(os.uname())
<span class="hljs-comment"># 获取系统中的环境变量</span>
print(os.environ)
<span class="hljs-comment"># 获取指定环境变量的值</span>
print(os.environ.get(<span class="hljs-string">"PATH"</span>))

<span class="hljs-comment"># 返回当前的目录</span>
print(os.curdir)

<span class="hljs-comment"># 返回当前工作目录的绝对路径</span>
print(os.getcwd())

<span class="hljs-comment"># 返回指定目录下的所有文件和目录</span>
print(os.listdir(<span class="hljs-string">r"C:\Users\sunck\Desktop\code"</span>))

<span class="hljs-comment"># 创建指定目录,注意目录已经存在时会报错,目录路径中存在不存在的层级时报错</span>
os.mkdir(<span class="hljs-string">r"C:\Users\sunck\Desktop\file"</span>)
os.mkdir(<span class="hljs-string">r"C:\Users\sunck\Desktop\file\a\b"</span>)

<span class="hljs-comment"># 删除目录,注意目录不存在则报错</span>
os.rmdir(<span class="hljs-string">r"C:\Users\sunck\Desktop\file"</span>)

<span class="hljs-comment"># 重命名</span>
os.rename(<span class="hljs-string">r"C:\Users\sunck\Desktop\code\file1.txt"</span>, <span class="hljs-string">r"C:\Users\sunck\Desktop\code\file2.txt"</span>)

<span class="hljs-comment"># 获取文件属性</span>
print(os.stat(<span class="hljs-string">r"C:\Users\sunck\Desktop\code\file2.txt"</span>))

<span class="hljs-comment"># 删除普通文件</span>
os.remove(<span class="hljs-string">r"C:\Users\sunck\Desktop\code\file2.txt"</span>)

<span class="hljs-comment"># 运行shell命令</span>
os.system(<span class="hljs-string">"notepad"</span>)
os.system(<span class="hljs-string">"shutdown -s -t 10"</span>)
os.system(<span class="hljs-string">"shutdown -a"</span>)

二、os.path中常用方法

操作文件和目的函数一部分在os模块中,还有一部分在os.path中

名称

说明

abspath

返回指定路径的绝对路径

join

拼接路径(不论是否存在)

split

拆分路径(不论是否存在)

splitdrive

以路径第一个’/'为分隔,分隔驱动器名与路径

splitext

获取文件的扩展名(不论是否存在)

basename

获取目录或文件名(不论是否存在)

getsize

获取属性

getctime

获取属性

isdir

判断是否是目录

isfile

判断是否是文件

exists

判断目录和文件是否存在

isabs

判断是否是绝对路径(不论是否存在)

<span class="hljs-keyword">import</span> os

<span class="hljs-comment"># 返回指定路径的绝对路径</span>
print(os.path.abspath(<span class="hljs-string">"."</span>))

<span class="hljs-comment"># 拼接路径(不论是否存在)</span>
print(os.path.join(<span class="hljs-string">r"C:\Users\sunck\Desktop\file"</span>, <span class="hljs-string">"a.txt"</span>))

<span class="hljs-comment"># 拆分路径(不论是否存在)</span>
print(os.path.split(<span class="hljs-string">r"C:\Users\sunck\Desktop\file"</span>))
print(os.path.split(<span class="hljs-string">r"C:\Users\sunck\Desktop\file\sunck.txt"</span>))
<span class="hljs-comment"># 以路径第一个'/'为分隔,分隔驱动器名与路径</span>
print(os.path.splitdrive(<span class="hljs-string">r"C:\Users\sunck\Desktop\file"</span>))
print(os.path.splitdrive(<span class="hljs-string">r"C:\Users\sunck\Desktop\file\sunck.txt"</span>))
<span class="hljs-comment"># 获取文件的扩展名(不论是否存在)</span>
print(os.path.splitext(<span class="hljs-string">r"C:\Users\sunck\Desktop\file"</span>))
print(os.path.splitext(<span class="hljs-string">r"C:\Users\sunck\Desktop\file\sunck.txt"</span>))

<span class="hljs-comment"># 获取目录名(不论是否存在)</span>
print(os.path.basename(<span class="hljs-string">r"C:\Users\sunck\Desktop\file"</span>))
<span class="hljs-comment"># 获取文件名(不论是否存在)</span>
print(os.path.basename(<span class="hljs-string">r"C:\Users\sunck\Desktop\file\sunck.txt"</span>))

<span class="hljs-comment"># 获取属性</span>
print(os.path.getsize(<span class="hljs-string">r"C:\Users\sunck\Desktop\code\test.py"</span>))
print(os.path.getctime(<span class="hljs-string">r"C:\Users\sunck\Desktop\code\test.py"</span>))

<span class="hljs-comment"># 判断是否是目录</span>
print(os.path.isdir(<span class="hljs-string">r"C:\Users\sunck\Desktop\code"</span>))
print(os.path.isdir(<span class="hljs-string">r"C:\Users\sunck\Desktop\file"</span>))
print(os.path.isdir(<span class="hljs-string">r"C:\Users\sunck\Desktop\code\test.py"</span>))

<span class="hljs-comment"># 判断是否是文件</span>
print(os.path.isfile(<span class="hljs-string">r"C:\Users\sunck\Desktop\code\test.py"</span>))
print(os.path.isfile(<span class="hljs-string">r"C:\Users\sunck\Desktop\code\1.txt"</span>))
print(os.path.isfile(<span class="hljs-string">r"C:\Users\sunck\Desktop\code"</span>))

<span class="hljs-comment"># 判断目录和文件是否存在</span>
print(os.path.exists(<span class="hljs-string">r"C:\Users\sunck\Desktop\code\test.py"</span>))
print(os.path.exists(<span class="hljs-string">r"C:\Users\sunck\Desktop\code\2.py"</span>))
print(os.path.exists(<span class="hljs-string">r"C:\Users\sunck\Desktop\code"</span>))
print(os.path.exists(<span class="hljs-string">r"C:\Users\sunck\Desktop\file"</span>))

<span class="hljs-comment"># 判断是否是绝对路径(不论是否存在)</span>
print(os.path.isabs(<span class="hljs-string">r"C:\Users\sunck\Desktop\code"</span>))
print(os.path.isabs(<span class="hljs-string">r"C:\Users\sunck\Desktop\file"</span>))
print(os.path.isabs(<span class="hljs-string">r".\code"</span>))