day5模块学习 -- os模块学习
os模块
os模块的作用:
os,语义为操作系统,所以肯定就是操作系统相关的功能了,可以处理文件和目录这些我们日常手动需要做的操作,就比如说:显示当前目录下所有文件/删除某个文件/获取文件大小……
另外,os模块不受平台限制,也就是说:当我们要在linux中显示当前命令时就要用到pwd命令,而Windows中cmd命令行下就要用到这个,额...我擦,我还真不知道,(甭管怎么着,肯定不是pwd),这时候我们使用python中os模块的os.path.abspath(name)功能,甭管是linux或者Windows都可以获取当前的绝对路径。
os模块的常用功能:
1 os.name #显示当前使用的平台
>>> import os
>>> os.name
'posix' #表示linux
>>> os.name
'nt' #表示windows
2 os.getcwd() #显示当前python脚本工作路径
>>> os.getcwd()
'/home/zhuzhu' #获取当前脚本所在的路径
3.os.chdir() #修改文件路径
>>> os.getcwd()
'/home/zhuzhu' #文件当前路径是:'/home/zhuzhu'
>>> os.chdir("/home") #我们使用chdir()来修改文件路径,修改成"/home"
>>> os.getcwd()
'/home' #可以看出,修改文件路径成功了
4.os.curdir #返回当前目录,是一个属性,而不是一个方法
>>> os.curdir
'.' #"."表示当前目录
>>> os.getcwd()
'/home'
5.os.pardir #返回上一级目录,获取当前目录的父目录字符串名:(
'..'
)
>>> os.pardir
'..' #".."代表当前目录的子目录
6.os.makedir("dirname1/dirname2") #可生成多层递归目录,就是递归的创建文件目录
下面,我们在当前目录下创建一个文件夹
os.makedirs("/home/zhuzhu/geng/alex")
os.makedirs()在文件/home/zhuzhu下创建了geng目录,在geng目录下创建了文件alex,如下,下面我们来看看是否创建成功:
zhuzhu@zhuzhu-K53SJ:~$ ls /home/zhuzhu
ATM day6 random title4 视频
Credit day7 shopping_center title5 图片
CreditCard examples.desktop sorted title6 文档
day1 geng title10 title7 下载
day2 java_error_in_PYCHARM_2297.log title11 title8 音乐
day3 learning_log title15 title9 桌面
day4 pycharm-2016.3.3 title16 第五天 作业
day4.0 pygame title2 公共的 作业汇总
day5 《Python编程》源代码文件 title3 模板
从上面可以看出,文件geng创建成功,下面来看看alex是否创建成功:
zhuzhu@zhuzhu-K53SJ:~$ ls /home/zhuzhu/geng
alex
可以看出,目录alex也创建成功了。
7.os.removedirs("dirname1") #若目录为空,则删除,并递归到上一级目录,如若也为空,则删除,以此类推
os.removedirs()是删除空的目录,递归的删除目录
上面我们创建了一个/home/zhuzhu/geng/alex,后面两个目录都为空,那么使用os.removedirs()看是否能够删除成功。
>>> os.removedirs("/home/zhuzhu/geng/alex") #删除目录alex,如果geng为空,也删除,依次类推。
zhuzhu@zhuzhu-K53SJ:~$ ls
ATM day6 shopping_center title5 图片
Credit day7 sorted title6 文档
CreditCard examples.desktop title10 title7 下载
day1 java_error_in_PYCHARM_2297.log title11 title8 音乐
day2 learning_log title15 title9 桌面
day3 pycharm-2016.3.3 title16 第五天 作业
day4 pygame title2 公共的 作业汇总
day4.0 《Python编程》源代码文件 title3 模板
day5 random title4 视频
可以看出,geng目录已经删除成功了
zhuzhu@zhuzhu-K53SJ:~$ ls /home/zhuzhu/geng
ls: 无法访问'/home/zhuzhu/geng': 没有那个文件或目录
系统里面也没有/home/zhuzhu/geng这个文件目录了
8.os.mkdir("dirname") #生成单级目录;只能一层一层创建,不能像makedirs()递归的创建
>>> os.mkdir("/home/zhuzhu/geng/alex")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
FileNotFoundError: [Errno 2] No such file or directory: '/home/zhuzhu/geng/alex'
>>> os.mkdir("/home/zhuzhu/geng")
>>> os.mkdir("/home/zhuzhu/geng/alex")
上面,我们使用mkdir("/home/zhuzhu/geng/alex")进行目录创建,系统报错,找不到文件路径/home/zhuzhu/geng,在下面我们先创建geng,然后创建alex就可以,mkdir()是一层一层创建文件目录,如果上一层文件目录不存在,在会报错。
9.rmdir("dirname") #删除当即空目录,若目录不为空则无法删除,报错;
10.os.listdir("dirname") #列出指定目录下的所有文件和子目录,包含隐藏文件,并以列表方式打印
os.listdir("dirname") 以列表的形式显示当前文件下所有的文件和子目录,如下:
>>> os.listdir(".") #当前文件的子目录
['.compiz', '.profile', 'day5', 'examples.desktop', '.bashrc', 'title10', '.config', 'title8', 'title15', 'title16', 'java_error_in_PYCHARM_2297.log', '.sunpinyin', 'sorted', '.java', '.mozilla', 'shopping_center', '.gnupg', '.gphoto', '音乐', 'pygame', '作业', 'day7', '.cache', '.pki', 'title11', 'day6', '作业汇总', 'title4', 'title3', '.sogouinput', 'title2', 'CreditCard', 'day1', '.bash_logout', 'title6', 'random', '.xinputrc', '.ICEauthority', 'title7', 'day4', '.gnome', '.local', ' 文档', '公共的', '.xsession-errors', '视频', '桌面', '.bash_history', '.xsession-errors.old', '.Xauthority', '《Python编程》源代 码文件', 'day3', '图片', 'Credit', '.dbus', 'pycharm-2016.3.3', '.python_history', 'day2', '第五天', 'ATM', '.PyCharm2016.3', '.gconf', 'title5', '下载', '.mysql_history', 'learning_log', '模板', 'title9', '.sudo_as_admin_successful', 'day4.0', '.presage']
>>> os.listdir("..") #上一级文件的子目录
['zhuzhu']
11.os.remove() #删除一个文件
下面,我们来看一个例子:
>>> os.mkdir("/home/zhuzhu/geng") #首先创建一个geng的目录,并且在里面添加内容
>>> os.rmdir("/home/zhuzhu/geng") #添加内容之后,我们来删除geng文件
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
OSError: [Errno 39] Directory not empty: '/home/zhuzhu/geng'
删除的时候,报错了,提示说文件不是空,不能删除,现在我们使用os.remove("dirname")来进行删除尝试:
>>> os.remove("/home/zhuzhu/geng")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
IsADirectoryError: [Errno 21] Is a directory: '/home/zhuzhu/geng'
>>> os.remove("/home/zhuzhu/geng/alex") #删除成功,删除geng文件夹下面的文件alex,从上面例子中我们可以看出,removedirs()是递归的删除文件夹,rmdir()是删除单层文件夹,如果文件夹里面有内容(即便里面的文件是空的,也是不能删除的),是不能删除的。而remove()是删除文件夹里面的文件。
12.os.remove() #重命名文件/目录
>>> os.mkdir("/home/zhuzhu/geng") #创建一个文件夹
>>> os.rename("/home/zhuzhu/geng","/home/zhuzhu/alexsb") #修改这个文件夹的名字,可以看出,修改成功了
os.remove()是重命名文件夹的,不能修改文件的名字
13.os.stat("path/filename") #获取文件/目录信息
>>> os.listdir() #获取当前文件下的文件/目录信息
['.compiz', '.profile', 'day5', 'examples.desktop', '.bashrc', 'title10', '.config', 'title8', 'title15', 'title16', 'java_error_in_PYCHARM_2297.log', '.sunpinyin', 'sorted', '.java', '.mozilla', 'shopping_center', '.gnupg', '.gphoto', '音乐', 'pygame', '作业', 'day7', '.cache', '.pki', 'title11', 'day6', '作业汇总', 'title4', 'title3', '.sogouinput', 'title2', 'CreditCard', 'day1', '.bash_logout', 'title6', 'random', '.xinputrc', '.ICEauthority', 'title7', 'day4', '.gnome', '.local', '文 档', '公共的', '.xsession-errors', '视频', '桌面', '.bash_history', '.xsession-errors.old', '.Xauthority', '《Python编程》源代码 文件', 'day3', '图片', 'Credit', '.dbus', 'pycharm-2016.3.3', '.python_history', 'day2', '第五天', 'ATM', '.PyCharm2016.3', '.gconf', 'title5', '下载', '.mysql_history', 'learning_log', '模板', 'title9', '.sudo_as_admin_successful', 'day4.0', '.presage']
>>> os.stat("day5") #获取文件的信息
os.stat_result(st_mode=16893, st_ino=17302706, st_dev=64768, st_nlink=4, st_uid=1000, st_gid=1000, st_size=4096, st_atime=1500590962, st_mtime=1496033312, st_ctime=1496033312)
可以看出,os.stat("dirname")是获取文件的信息,st_size大小,创建时间等等信息。
14.os.sep #输出操作系统特定路径分隔符,win下为"\\",Linux下为"/"
>>> import os #输出操作系统特定路径分隔符,Windows下为"\\",Linux下为"/"
>>> os.sep
'/' #从输出可以看出,使用的是Linux操作系统
15.os.linesep #输出当前平台使用的行终止符,Windows下为"\t\n",Linux下为"\n"
平台使用的行终止符,Windows下为"\t\n",Linux下为"\n",下面来看看当前电脑的行终止符。
>>> os.linesep #查看当前平台使用的行终止符,Windows下为"\t\n",Linux下为"\n"
'\n'
16.os.pathsep #输出用于分割文件路径的字符串
>>> os.pathsep
':'
17.os.system("bash command") #运行shell命令,直接显示
>>> os.system("dir") #运行系统命令
ATM day6 shopping_center title5 图片
Credit day7 sorted title6 文档
CreditCard examples.desktop title10 title7 下载
day1 java_error_in_PYCHARM_2297.log title11 title8 音乐
day2 learning_log title15 title9 桌面
day3 pycharm-2016.3.3 title16 第五天 作业
day4 pygame title2 公共的 作业汇总
day4.0 《Python编程》源代码文件 title3 模板
day5 random title4 视频
18.os.environ #获取系统环境变量
os.environ是获取系统环境变量,输入可以显示系统的环境变量
19.os.path.abspath(path) #返回path规范化的绝对路径
>>> os.path.abspath("/home/zhuzhu")
'/home/zhuzhu'
20.os.path.split(path) #将path分割成目录和文件名二元组返回
>>> os.path.split("/home/zhuzhu/a.txt")
('/home/zhuzhu', 'a.txt')
21.os.path.dirname(path) #返回path的目录。其实就是os.path.split(path)的第一个元素
>>> os.path.dirname("/home/zhuzhu/a.txt")
'/home/zhuzhu'
>>> os.path.dirname("/home/zhuzhu")
'/home'
22.os.path.basename(path) #提取文件最后一个名字,即os.path.split(path)的第二个元素
>>> os.path.basename("/home/zhuzhu/alex.txt")
'alex.txt'
>>> os.path.basename("/home/zhuzhu")
'zhuzhu'
23.os.path.exists(path) #如果path存在,返回True;如果path不存在,返回False
>>> os.path.exists("/home/zhuzhu/alexsb.txt")
False
>>> os.path.exists("/home/zhuzhu")
True
从上面可以看出,os.path.exists(path)是用来判断文件是否存在,如果path存在,则返回True;否则返回False
24.os.path.isabs(path) #如果path是绝对路径,返回True
Linux系统中,以"/"开头的就是绝地路径,否则就是相对路径
>>> os.path.isabs("/home/zhuzhu")
True
>>> os.path.isabs("/zhuzhu")
True
>>> os.path.isabs("zhuzhu")
False
os.path.isabs(path)判断文件路径是否是绝对路径,Linux系统中,只要是以"/"开头就是绝对路径,Windows"C:\"等开头是绝对路径,即从根目录开始就是绝对路径,不管文件是否存在。
25.os.path.isfile(path) #如果path是一个存在的文件,返回True;否则返回False
>>> os.path.isfile("/home/zhuzhu/alex.txt")
True
>>> os.path.isfile("/home/zhuzhu")
False
os.path.isfile(path)是判断一个文件是否存在,如果path是一个文件夹或者不存在,就会返回错误,其实就是判断一个文件是否存在。
26.os.path.isdir(path) 如果paht是一个存在的目录,则返回True。否则返回False
>>> os.path.isdir("/home/zhuzhu")
True
>>> os.path.isdir("/home/zhuzhu/alex.txt")
False
os.path.isfile(path)是判断一个文件是否存在,而os.path.sidir(path)是判断一个目录是否存在,两者是不一样的,一个是文件,一个是目录。
27.os.path.join(path1,path2,path3) #将多个文件路径组合后返回,第一个绝对路径之前的参数将被忽略
>>> os.path.join("/home","zhuzhu")
'/home/zhuzhu'
>>> os.path.join("/home","zhuzhu","alex.txt")
'/home/zhuzhu/alex.txt'
28.os.path.getatime(path) #返回path所指向的文件或者目录最后存取时间 (getatime = get access time最后存取时间)
>>> os.path.getatime("/home/zhuzhu/alex.txt")
1500730373.8242517
29.os.path.getmtime(path) #返回path所有指向的文件或者目录的最后修改时间 (getmtime = get modify time最后修改时间)
>>> os.path.getmtime("/home/zhuzhu/alex.txt")
1500730373.8242517
day5模块学习 -- os模块学习的更多相关文章
- 时间模块之datatime模块、os模块、sys模块、json模块、json模块实操
目录 一.模块的绝对导入和相对导入 二.包的概念 三.编程思想的转变 四.软件开发目录规范 五.常见的内置模块 一.时间模块之datatime模块 1.datetime.datetime.today( ...
- python 常用模块(一): os模块,序列化模块(json模块 pickle模块 )
1.os模块 2.序列化模块:(1)json模块 和 pickle模块 一.os模块 os.path.abspath: (1)把路径中不符合规范的/改成操作系统默认的格式 import os path ...
- 常用模块:os模块,logging模块等
一 os模块 那么作为一个常用模块,os模块是与操作系统交互的一个模块. 那么os模块中我们常用的一般有以下几种: os.listdir('dirname') 以列表的形式列出指定目录下的所有文 ...
- Python入门-模块2(random模块、os模块)
>>> random.randomrange(1,10) #返回1-10之间的一个随机数,不包括10 >>> random.randint(1,10) #返回1-1 ...
- 模块之-os模块
模块之-os模块 >>> import os >>> os.getcwd() #获取当前工作目录 'C:\\Users\\Administrator' >&g ...
- (转)python常用模块(模块和包的解释,time模块,sys模块,random模块,os模块,json和pickle序列化模块)
阅读目录 1.1.1导入模块 1.1.2__name__ 1.1模块 什么是模块: 在计算机程序的开发过程中,随着程序代码越写越多,在一个文件里代码就会越来越长,越来越不容易维护. 为了编写可维护的代 ...
- python学习之老男孩python全栈第九期_day019知识点总结——collections模块、时间模块、random模块、os模块、sys模块
一. collections模块 在内置数据类型(dict.list.set.tuple)的基础上,collections模块还提供了几个额外的数据类型:namedtuple.deque.Counte ...
- Python:模块学习——os模块
os模块提供了多个访问操作系统服务的功能 os模块中一些重要的函数和变量 os.name 显示当前使用平台 os.getcwd() 显示当前Python脚本工作路径 os.listdir('dirna ...
- python学习之【第十六篇】:Python中的常用模块之OS模块、sys模块、random模块
1. OS模块 OS模块是与操作系统交互的一个接口.内部提供了以下方法: os.getcwd() 获取当前工作目录,即当前python脚本工作的目录路径 os.chdir("dirname& ...
随机推荐
- Go_20: Golang 中 time 包的使用
time包中包括两类时间:时间点(某一时刻)和时常(某一段时间) 1. 时间常量(时间格式化) const ( ANSIC = "Mon Jan _2 15:04:05 2006" ...
- 科学计算三维可视化---Mlab基础(数据可视化)
推文:科学计算三维可视化---TVTK库可视化实例 使用相关函数:科学计算三维可视化---Mlab基础(管线控制函数) 一:mlab.pipeline中标量数据可视化 通过持续实例,来感受mlab对数 ...
- bzoj千题计划125:bzoj1037: [ZJOI2008]生日聚会Party
http://www.lydsy.com/JudgeOnline/problem.php?id=1037 一个区间是否满足 任意连续的一段,男孩与女孩的数目之差不超过k, 取决于男孩与女孩数目之差的最 ...
- Tomcat开启Debug模式
在bin/catalina.sh中添加如下行,将tomcat重启即可. 注:以下标红的7002需将其改成对象的tomcat端口即可! JAVA_OPTS=,server=y,suspend=n -Df ...
- 动态改变swiper的属性
<script> var mySwiper = new Swiper('.swiper-container',{ autoplay : 1000, autoplayDisableOnInt ...
- springcloud入门系列(二):注册中心Eureka
搭建注册中心Eureka 1.pom中依赖 <dependencies> <dependency> <groupId>org.springframework.clo ...
- java 去除末尾的零 如果小数点可以去除同时去除小数点
String s; if(s.indexOf(".") > 0){ //正则表达 s = s.replaceAll("0+?$", "" ...
- 谈谈VMware虚拟机中的网络问题
前言:用了好几年的虚拟机,多多少少都会遇到那么一些网络问题,在这里总结一下这么几年在虚拟机中遇到的一些网络问题(主要针对linux)...... 一.VMware相关基础知识 1.bridged(桥接 ...
- POJ 3468 A Simple Problem with Integers (区间更新+区间查询)
题目链接 Description You have N integers, A1, A2, ... , AN. You need to deal with two kinds of operation ...
- 61.volatile关键字
volatile作用 volatile的作用是可以保持共享变量的可见性,即一个线程修改一个共享变量后,另一个线程能够读取到这个修改后的值. 先来看一个问题: 定义一个Task类 package com ...