欢迎来到“只读课堂”!
这个模块和文件操作一样,使用它,可以与我们当前的系统进行交互。
OS模块简单介绍
os模块主要有以下几种:posix(适用于unix操作系统) nt(win) mac(旧版本的MACOS),dos(DOS)
使用os模块的过程中,不需要考虑平台差异,python解释器就会帮大家选择正确的系统支持
window系统下是nt
In [1]:
#但是你不需要考虑,你到底要选择哪个操作系统和代码,python会帮你选好你需要的操作环境,你只需要打代码就行了。
os对进程和进程运行环境进行管理,os模块还可以处理大部分文件系统操作:比如说,删除、重命名文件、遍历目录树,以及管理文件访问权限。
In [2]:
#之前是打开文件操作,但是现在os模块是在文件外进行操作。
os和sys的区别:
os负责程序与操作系统的交互,sys负责程序与python解释器的交互
os.path和sys.path:
sys.path是咱们常用的PATH环境变量,而os.path是一个模块,提供一些方法函数
常用OS模块函数(一)
os.name:输入正在使用的平台
os.getcwd():函数得到当前工作目录,即当前Python脚本工作的目录路径
运行目录:执行程序的路径
工作目录:程序运行时,程序中我们要操作的一系列相对路径(需要参照),以运行时目录为参照。并且可在程序运行时更改
os.listdir():返回指定目录下的所有文件和目录名的一个列表,但是并没有列出来什么是目录,什么是文件
os.remove('flie_name'):删除指定文件
os.rmdir('dir_name'):删除指定目录
先导入os模块
In [4]:
import os
In [5]:
os.name
Out[5]:
'nt'
In [6]:
#它会返回一些字母,也就是我们前面提到的操作系统的代号。
工作路径
In [9]:
os.getcwd()
Out[9]:
'C:\\Users\\Jimmy'
运行目录
In [11]:
#工作路径是可以改变的
In [16]:
#如果这里不给出目录的话,它会默认使用工作目录,也就会返回当前工作目录里的所有文件。
In [17]:
#如果我们想要实现一个小功能
In [21]:
#假如说我们要显示某个目录下的所有目录下的所有文件和所有文件夹
os.listdir()
In [22]:
os.listdir()
Out[22]:
['.ipynb_checkpoints',
'.ipython',
'.jupyter',
'.pylint.d',
'.vscode',
'3D Objects',
'AppCan settings',
'AppData',
'Application Data',
'Contacts',
'Cookies',
'Desktop',
'Documents',
'Downloads',
'Favorites',
'Intel',
'Links',
'Local Settings',
'MicrosoftEdgeBackups',
'Music',
'My Documents',
'NetHood',
'NTUSER.DAT',
'ntuser.dat.LOG1',
'ntuser.dat.LOG2',
'NTUSER.DAT{47a6a17a-a514-11e7-a94e-ec0d9a05c860}.TM.blf',
'NTUSER.DAT{47a6a17a-a514-11e7-a94e-ec0d9a05c860}.TMContainer00000000000000000001.regtrans-ms',
'NTUSER.DAT{47a6a17a-a514-11e7-a94e-ec0d9a05c860}.TMContainer00000000000000000002.regtrans-ms',
'ntuser.ini',
'OneDrive',
'Pictures',
'PrintHood',
'Python入门第24课——递归(只读课堂).ipynb',
'Python初级第2课——os模块(只读课堂).ipynb',
'Recent',
'Saved Games',
'Searches',
'SendTo',
'Templates',
'Untitled.ipynb',
'Videos',
'「开始」菜单']
In [23]:
#我们可以随便给它来一个参数
In [24]:
#比如说桌面
In [27]:
os.listdir('C:\\Users\\Jimmy\\Desktop')
Out[27]:
['Acrobat Pro9.lnk',
'Anaconda Navigator.lnk',
'desktop.ini',
'E听说.lnk',
'Google Chrome.lnk',
"Jeason's Files.lnk",
'Jupyter Notebook.lnk',
'QQ影音.lnk',
'Visual Studio Code.lnk',
'迅雷.lnk',
'金山词霸2016.lnk']
In [29]:
#注意啊,一定要用双斜杠或者在前面加一个r,从而防止特定字母。
In [30]:
#但是这个功能只能反映桌面下的浅浅的一个目录,文件夹之类的都没展开,所以说这个功能还是比较low的。
删除指定文件
In [35]:
#先新建一个文件
In [36]:
os.listdir('C:\\Users\\Jimmy\\Desktop')
Out[36]:
['Acrobat Pro9.lnk',
'Anaconda Navigator.lnk',
'desktop.ini',
'E听说.lnk',
'Google Chrome.lnk',
"Jeason's Files.lnk",
'Jupyter Notebook.lnk',
'QQ影音.lnk',
'Visual Studio Code.lnk',
'新建文件夹',
'迅雷.lnk',
'金山词霸2016.lnk']
In [37]:
#这里多了一个文件夹,可以拿来删除了
In [38]:
os.rmdir('新建文件夹')
---------------------------------------------------------------------------
FileNotFoundError Traceback (most recent call last)
<ipython-input-38-814e3d4efbb6> in <module>()
----> 1 os.rmdir('新建文件夹')
FileNotFoundError: [WinError 2] 系统找不到指定的文件。: '新建文件夹'
In [39]:</