作用:包含了基本的操作系统功能,提供了非常丰富的方法用来处理文件和目录
属性
名称 | 说明 |
---|---|
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模块中,还有一部分在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>))