os模块提供了多数操作系统的功能接口函数
1.os.name——name指操作系统的名字,主要作用是判断目前正在使用的平台,并给出操作系统的名字,如Windows 返回 'nt'; Linux/mac 返回'posix'。注意该命令不带括号。
注意:os.name 该条命令不需要带括号( ),使用其余os模块的命令基本上都要带括号里面的参数。
2.os.getcwd()——全称是'get current work directory',获取当前工作的目录;
例如:
返回结果为:'/Users/mac/PycharmProjects/Document_learning'。
3.os.listdir(path)——列出path目录下所有的文件和目录名。Path参数可以省略。
以列表的形式全部列举出来,其中没有区分目录和文件。
4.os.remove(path)——删除path指定的文件,该参数不能省略。如果是当前路径下的文件,参数直接写成 ‘当前文件完整名称’。
5.os.rmdir(path)——删除path指定的目录,该参数不能省略。
6.os.mkdir(path)——创建path指定的目录,该参数不能省略。
注意:这样只能建立一层,要想递归建立可用:os.makedirs()
os.makedirs('一级文件夹/sub二级/sub三级') ##允许创建多级文件夹
创建文件夹的结果如下:
注意:当删除里面有内容的目录文件夹时,无法使用os.remove语句
这个时候就需要引用一个新的模块:shutil ———使用该模块的shutil.rmtree( )来实现删除功能。
import shutil
shutil.rmtree('一级文件夹') # 文件中包含有内容的删除方式
总结:shutil.rmtree功能: ————————非空删除——————————
注:遍历目录的方法
# 获取python中的目录列表
list_mac=os.listdir('/Users/mac')
for wenjian in listR:
print(wenjian)
以上为老版的方法,通过for循环遍历.
以下为新方法:scandir和with一起来使用,上下文管理器会在迭代器遍历完成后自动释放资源。
rs=os.scandir('/Users/mac')
print(rs)
with rs as obj:
for entry in obj:
print(entry.name)
pass
注意:代码中的name可写可不写,输出格式略有不同。
base_path='/Users/mac'
for entry in os.listdir(base_path):
if os.path.isfile(os.path.join(base_path,entry)):
print(entry)
if os.path.isdir(os.path.join(base_path,entry)):
print('文件'+entry)
pass
输出结果:
文件Untitled Folder
.Rhistory
文件.config
文件Music
matlab_crash_dump.83707-1
文件DocumentsImageResources
文件sensors
.condarc
.python_history-55992.tmp
文件NoteExpressWeb.Attachments
.DS_Store
文件.R
.CFUserTextEncoding
.xonshrc
文件.subversion
.zshrc
文件.local
文件Pictures
文件.ipython
文件Desktop
文件Library
文件.matplotlib
NetworkxLearn.ipynb
文件.oracle_jre_usage
文件Parallels
文件.TrojanX
文件.ShadowsocksX-NG
文件.cups
文件.bash_sessions
文件PycharmProjects
文件Public
文件.idlerc
.tcshrc
.RData
文件.anaconda
文件Applications (Parallels)
文件Movies
文件Applications
.Rapp.history
MCMC.ipynb
文件opt
文件.Trash
文件.ipynb_checkpoints
文件.jupyter
文件Documents
matlab_crash_dump.84474-1
文件NoteExpressWeb
文件.BetterIntelliJ
文件Sunlogin Files
文件.vscode
.bash_profile
文件anaconda3
文件Downloads
.python_history
文件.continuum
文件Untitled Folder 1
.bash_history
.viminfo
文件.astropy
文件.conda
7. os.path.isfile(path)——判断指定对象是否为文件。是返回True,否则False
8. os.path.isdir(path)——判断指定对象是否为目录。是True,否则False。
9. os.path.exists(path)——检验指定的对象是否存在。是True,否则False。
10. os.path.split(path)——返回路径的目录和文件名,即将目录和文件名分开,而不是一个整体。此处只是把前后两部分分开而已。就是找最后一个'/'。
11. os.system(cmd)——执行shell命令。返回值是脚本的退出状态码,0代表成功,1代表不成功。
12. os.chdir(path)——'change dir'改变目录到指定目录
13. os.path.getsize()——获得文件的大小,如果为目录,返回0
14. os.path.abspath()——获得绝对路径。
15. os.path.join(path, name)—连接目录和文件名,与os.path.split(path)相对。
16.os.path.basename(path)——返回文件名
17. os.path.dirname(path)——返回文件路径