Python os模块及shuti模块的操作

一、os模块

1.1 os模块介绍

os模块提供了多数操作系统的功能接口函数。当os模块被导入后,它会自适应于不同的操作系统平台,根据不同的平台进行相应的操作,在python中os模块用于处理文件、目录等。

1.2 os模块中常用方法

1.2.1 os.getcwd()
import os
# 获得当前python脚本的工作目录
print(os.getcwd())

C:\Users\17867
1.2.2 os.listdir()
import os
# 获得指定目录下的所有文件和目录名
a = os.listdir("C:\\")
# 返回的数据是一个列表
print(a)
print(type(a))

['$Recycle.Bin', '$WINRE_BACKUP_PARTITION.MARKER', '360安全浏览器下载', '360极速浏览器下载', 'bootTel.dat', 'Documents and Settings', 'hiberfil.sys', 'InstallConfig.ini', 'InstallLog', 'Intel', 'KuGou', 'pagefile.sys', 'PerfLogs', 'picture', 'Program Files', 'Program Files (x86)', 'ProgramData', 'Recovery', 'swapfile.sys', 'System Volume Information', 'Users', 'Windows']
<class 'list'>
1.2.3 os.remove()
import os
# 删除一个文件,会将文件移动到回收站
os.remove("C:\\notebook.txt")
1.2.4 os.rmdir()

仅仅适用于删除空目录

import os
# 删除一个目录
os.rmdir("C:\\123")
1.2.5 os.mkdir()
import os
# 新建单个目录
os.mkdir("C:\\123")
1.2.6 os.makedirs()
import os
# 新建多级目录
os.makedirs("C:\\test\\text1")
1.2.7 os.rename()
import os
# 修改目录名字,第一个参数为待修改的目录名称,第二参数为修改后的目录名称
os.rename("C:\\123","C:\\789")
# 修改文件名字
os.rename("F:\\1.txt","F:\\2.txt")
1.2.8 os.walk()

os.walk 是遍历目录常用的模块,它返回一个三元组 (dirpath,dirnames,filenames)。dirpath 是以 str 形式返回该目录下所有的绝对路径;dirnames 是以列表 list 形式返回每一个绝对路径下的文件夹名字;filesnames 是以列表 list 形式返回该路径下所有文件名字。

import os
for root, dirs, files in os.walk('C:\\picture'):
    print(root)
    print(dirs)
    print(files)

C:\picture
['123', '456']
['bird1.jpg', 'bird2.jpg', 'bird3.jpg', 'car1.jpg', 'car2.jpg', 'car3.jpg', 'cat1.jpg', 'cat2.jpg', 'cat3.jpeg', 'deer1.jpg', 'deer2.jpg', 'deer3.jpg', 'dog1.jpg', 'dog2.jpg', 'dog3.jpg', 'frog1.jpg', 'frog2.jpg', 'frog3.jpg', 'house1.jpg', 'house2.jpg', 'house3.jpg', 'plane1.jpg', 'plane2.jpeg', 'plane3.jpeg', 'ship1.jpg', 'ship2.jpg', 'ship3.jpg', 'truck1.jpg', 'truck2.jpg', 'truck3.jpg']
C:\picture\123
[]
[]
C:\picture\456
[]
[]
1.2.9 os.getenv(“path”)
import os
#读取环境变量
print(os.getenv("path"))
# 为str格式的数据
print(type(os.getenv("path")))

F:\ANACONDA;F:\ANACONDA\Library\mingw-w64\bin;F:\ANACONDA\Library\usr\bin;F:\ANACONDA\Library\bin;F:\ANACONDA\Scripts;C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\bin;C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\libnvvp;;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\Program Files (x86)\Microsoft SQL Server\100\Tools\Binn\;C:\Program Files\Microsoft SQL Server\100\Tools\Binn\;C:\Program Files\Microsoft SQL Server\100\DTS\Binn\;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\;%SYSTEMROOT%\System32\OpenSSH\;F:\ANACONDA;F:\ANACONDA\Library\mingw-w64\bin;F:\ANACONDA\Library\usr\bin;F:\ANACONDA\Library\bin;F:\ANACONDA\Scripts;F:\PY\Scripts\;F:\PY\;C:\Users\17867\AppData\Local\Microsoft\WindowsApps;C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0;C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\bin;C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\lib\x64;C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\libnvvp;
<class 'str'>
1.2.10 os.putenv()

该模块为设置一个环境变量

1.2.11 os.stat()
import os
#获取文件属性
print(os.stat("C:\\picture\\cat1.jpg"))

os.stat_result(st_mode=33206, st_ino=2533274790397271, st_dev=163689085, st_nlink=1, st_uid=0, st_gid=0, st_size=263138, st_atime=1548419452, st_mtime=1548398091, st_ctime=1548398086)

二、os.path模块

2.1 os.path模块介绍

os.path模块是操作文件与文件路径所经常用到的一个模块,它是在os模块下。

2.2 os.path模块中常用方法

2.2.1 os.path.isfile()
import os
# 判断该路径下是否为一个文件,是的返回True不是则返回False
print(os.path.isfile("C:\\picture\\cat1.jpg"))

True
2.2.2 os.path.isdir()
import os
# 检验给出的路径是否是一个目录
print(os.path.isdir("H:\\numpy"))

False
2.2.3 os.path.isabs()
import os
# 判断路径是否是绝对路径
os.path.isabs("H:\\numpy")

True
2.2.4 os.path.exists()
import os
#检验路径是否真的存在
os.path.exists("C:\\picture")

True
2.2.5 os.path.split()
import os
# 分离一个路径的目录和文件名
a = os.path.split("C:\\picture\\cat1.jpg")
print(a)
# 数据类型为元组
print(type(a))

('C:\\picture', 'cat1.jpg')
<class 'tuple'>
2.2.6 os.path.splitext()
import os
# 分离文件的扩展名
a = os.path.splitext("C:\\picture\\cat1.jpg")
print(a)
# 数据类型为元组
print(type(a))

('C:\\picture\\cat1', '.jpg')
<class 'tuple'>
2.2.7 os.path.dirname()
import os
# 获取路径名
a = os.path.dirname("H:\\picture\\cat1.jpg")
print(a)
# 数据类型为str
print(type(a))

H:\picture
<class 'str'>
2.2.8 os.path.basename()
import os
# 获取文件名
a = os.path.basename("C:\\picture\\cat1.jpg")
print(a)
# 数据类型为str
print(type(a))

cat1.jpg
<class 'str'>
2.2.9 os.path.abspath()
import os
# 将相对路径转化为绝对路径
# 相对路径
path = './boys'
result = os.path.abspath(path)
print(result)

C:\Users\17867\boys
2.2.10 os.path.join()
import os
# 将2个路径合并成一个
a = 'C:\python_demo'
b = '000.py'
result = os.path.join(a,b)
print(result)

C:\python_demo\000.py
2.2.11 os.path.getsize()
import os
result = os.path.getsize("C:\\picture\\cat1.jpg")
print(result)

49650

三、shuti模块

3.1 shuti 模块介绍

Python中shuti模块常用于操作文件夹或者文件,该模块经常配合os模块进行使用。

3.2 shuti 模块中常用方法

3.2.1 shutil.copytree()
import shutil
# 复制文件夹,第一个参数为被复制的文件夹,第二个参数为复制后的文件夹
shutil.copytree("C:\\picture","C:\\picture2")
3.2.2 shutil.copyfile()
import shutil
# 复制文件
shutil.copyfile("C:\\picture\\cat1.jpg", "C:\\picture\\cat.jpg")
3.2.3 shutil.move()
import shutil
# 移动文件
shutil.move("C:\\picture", "F:\\picture")
3.2.4 shutil.rmtree()
import shutil
# 空目录和有内容的目录均可以删除
shutil.rmtree("C:\\picture 1")

四、资料

关于os模块的其他操作方法可以参考网址:https://www.runoob.com/python3/python3-os-file-methods.html

发布了38 篇原创文章 · 获赞 45 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/a1786742005/article/details/86660377