一、os模块

os.getcwd()  获取当前的工作目录

os.chdir('绝对路径/相对于当前工作目录的路径')  改变工作目录,相当于shell的cd命令,例如Windows平台下os.chdir(r'D:\PythonScripts\test\c'),磁盘那一层必须用双斜线分割,其他层级的双斜线和单斜线都可,在linux和unix平台下用/分割

os.curdir  返回当前路径 .

os.pardir  返回当前路径的上一层路径,即 ..

os.mkdir('dir')  生成单级目录

os.makedirs(r'dir1\dir2') 创建递归目录,不加绝对路径表示在当前工作目录下创建

os.rmdir('dir')  删除单级空目录,如果目录不为空无法删除

os.removedirsr('dir1\dir2')  若目录为空则删除,并递归到上一层目录,若上一层为空也删除,以此类推

os.listdir(dir)  列出指定目录下的所有一级文件和目录,并以列表形式打印

os.remove('file')  删除一个文件

os.rename('oldname','newname')  重命名文件或目录

os.listdir('dir')以列表形式列出dir目录下所有的文件和目录

os.stat('file'/'dir')  获取文件/目录的大小,链接数,创建时间,上一次修改、访问时间等信息

os.sep  获取当前环境的分隔符

os.linesep  获取当前环境的换行符,windows下为/r/n,linux下为/n

os.pathsep  获取当前环境分割文件路径的字符串,windows下为;,linux下为:

os.name  获取当前使用平台,windows为nt,linux为posix

os.environ 获取系统环境变量

os.system(shell command)  运行shell命令,返回执行状态码,执行结果显示到屏幕

os.path.abspath(path)  返回绝对路径

os.path.split(path)  将path分割成目录和文件名的两个元素的元组

os.path.dirame(path)  返回path的目录,相当于os.path.split(path)的第一个元素

os.path.basename(path)  返回path最后的文件名,如果path以/或\结尾则返回空值,即os.path.split(path)的第二个元素

os.path.exists(path)  如果path存在则返回True,否则返回False

os.path.isabs(path)  如果path是绝对路径则返回True,否则返回False

os.path.isfile(path)  如果path是一个存在的文件则返回True,否则返回False

os.path.isdir(path)   如果path是一个存在的目录则返回True,否则返回False

os.path.join(path1[,path2[,path3…]])  将多个路径组合后返回,第一个绝对路径之前的参数将被忽略

os.path.getatime(path)  获取path所指向的文件或者目录的最后访问时间

os.path.getmtime(path)  获取path所指向的文件或者目录的最后修改时间

二、os模块中的os.walk()函数

os.walk('path')函数对于每个目录返回一个三元组,(dirpath, dirnames, filenames),

第一个是路径,第二个是路径下面的目录,第三个是路径下面的文件

如果加参数topdown=False则表示自下而上进行遍历,默认为topdown=True即自上而下进行遍历

#对于上述结构,os.walk()的结果为
['dir', ['dir1', 'dir2'], ['file1.txt', 'file2.txt']]
['dir\\dir1', ['dir11', 'dir12'], []]
['dir\\dir1\\dir11', [], ['file111.txt']]
['dir\\dir1\\dir12', [], []]
['dir\\dir2', ['dir21'], ['file21.txt']]
['dir\\dir2\\dir21', [], []] #可通过如下脚本验证
import sys
l=[]
for root,dirs,files in os.walk('dir'):
l.append(root)
l.append(dirs)
l.append(files)
print(l)
l=[]

结果分析

1.先以给定的目录作为根目录进行遍历,读取根目录的文件夹和文件

2.以根目录下子目录为新的根目录进行遍历,读取其下面的文件夹和文件

3.再以2中得到的子目录为根目录进行遍历,读取其下面的文件夹和文件

4.重复3,直至所有子目录下面没有子目录和文件

三、sys模块

sys.path  获取python PATH环境变量的值

sys.version  获取python解释器的版本

sys.exit(n)  在程序执行过程中退出程序,正常退出为exit(0)

sys.argv  返回的结果为一个列表且各元素都为字符串,第一个元素为当前执行文件的名称,后面的元素为执行文件时传入的参数,以空格分隔各参数,如果只有空格表示没有参数。

[root@oldboy test]# cat argv.py
import sys
print(sys.argv)
[root@oldboy test]# python argv.py
['argv.py']
[root@oldboy test]# python argv.py 11 '22' [33,44] 'True' {1:'a'}#文件执行时传入的参数不能为元组,否则会报错
['argv.py', '', '', '[33,44]', 'True', '{1:a}']

sys.stdout.write('str')  向屏幕输出,不换行,相当于print,但是print('str')是换行输出

sys.stdout.flush( )  将缓存输出到屏幕

例如通过#逐步打印进度条

import time,sys
for i in range(20):
sys.stdout.write('#') #打印一个#,不换行
time.sleep(0.1) #睡0.1秒再输出下一个#
sys.stdout.flush() #将缓存中的#输出到屏幕,没有这一行系统会等到输出完毕再将缓存中的20个#输出到屏幕
print('')

解析文件执行时输入的参数:optparse模块

import optparse
class ArgvHandle():
def __init__(self):
self.op = optparse.OptionParser()
self.op.add_option('-s','--server',dest = 'server')
#,前面为文件执行时的输入,dest表示参数名。如果文件执行时带有-s或者--server,则形成参数名称为dest指定名称、参数值为-s或者--server后面紧跟着的内容
self.op.add_option('-P','--port',dest = 'port')
self.op.add_option('-u','--username',dest = 'username')
self.op.add_option('-p','--passwort',dest = 'password') option,args = self.op.parse_args()
print(type(option),type(args))
print(option,args)   
 print(option.server,option.port,option.username,option.password)#通过.取参数名对应的值 test = ArgvHandle()

随意输入参数执行结果如下

可知op.parse_args()是将文件执行python mani.py后面的参数分割成两部分,一部分类似字典的形式(实际是一个对象),一部分是一个列表。

如果匹配到add_option定义的参数形式,则将后面紧跟着的输入作为参数的值;未匹配到add_option定义的参数形式的其余输入被整理到一个列表中。

python的os模块和sys模块的更多相关文章

  1. (转)python常用模块(模块和包的解释,time模块,sys模块,random模块,os模块,json和pickle序列化模块)

    阅读目录 1.1.1导入模块 1.1.2__name__ 1.1模块 什么是模块: 在计算机程序的开发过程中,随着程序代码越写越多,在一个文件里代码就会越来越长,越来越不容易维护. 为了编写可维护的代 ...

  2. Python库的使用之-Sys模块

    Python标准库之sys模块使用详解,讲解了使用sys模块获得脚本的参数.处理模块. 使用sys模块操作 模块搜索路径.使用sys模块查找内建模块.使用sys模块查找已导入的模块,重定向输出以及重定 ...

  3. 时间模块之datatime模块、os模块、sys模块、json模块、json模块实操

    目录 一.模块的绝对导入和相对导入 二.包的概念 三.编程思想的转变 四.软件开发目录规范 五.常见的内置模块 一.时间模块之datatime模块 1.datetime.datetime.today( ...

  4. python常用模块之sys模块

    python常用模块之sys模块 1.sys.argv[]:命令行参数List,第一个元素是程序本身 # 写一个简单的python程序,代码如下: #!/usr/bin/python #coding= ...

  5. python常用模块(模块和包的解释,time模块,sys模块,random模块,os模块,json和pickle序列化模块)

    1.1模块 什么是模块: 在计算机程序的开发过程中,随着程序代码越写越多,在一个文件里代码就会越来越长,越来越不容易维护. 为了编写可维护的代码,我们把很多函数分组,分别放到不同的文件里,这样,每个文 ...

  6. Python学习笔记——基础篇【第五周】——os模块和sys模块

    OS模块 提供对操作系统进行调用的接口 os.getcwd() 获取当前工作目录,即当前python脚本工作的目录路径 os.chdir("dirname") 改变当前脚本工作目录 ...

  7. python中os模块和sys模块的常见用法

    OS模块的常见用法 os.remove()   删除文件 os.rename()   重命名文件 os.walk()    生成目录树下的所有文件名 os.chdir()    改变目录 os.mkd ...

  8. 19 python初学(os 模块,sys 模块,hashlib 模块)

    os 模块: # _author: lily # _date: 2019/1/13 import os print(os.getcwd()) # 得到当前的工作目录 # print(os.chdir( ...

  9. Python之os模块和sys模块

    OS模块:print(os.getcwd())os.chdir('..') #返回上一层目录print(os.getcwd()) os.makedirs('xxxx') #生成多级递归目录os.mkd ...

随机推荐

  1. Java--TestNG

    TestNG类的配置信息:  @BeforeSuite:在此套件中的所有测试运行之前,将运行带注释的方法.  @AfterSuite:在此套件中的所有测试运行后,将运行带注释的方法.  @Before ...

  2. linux使用bin文件安装jdk

    jdk1.6.20文件为bin文件安装过程如下 添加执行权限 chmod +x jdk-6u20-linux-x64.bin 运行,出现提示需要输入yes ./jdk-6u20-linux-x64.b ...

  3. JNUOJ 1180 - mod5

    首先,可以自己先一个超时的标程出来: #include<cstdio> typedef long long ll; ll n,m,cnt; int main() { int t; scan ...

  4. CCCC L2-022. 重排链表

    题解:直接list模拟,头尾两个指针,分别将头尾元素push到另一个list里面,输处输入方式同上一篇 坑:第一发卡了第二个样例,第二发卡了第4个,莫名其妙,所以把两个代码合起来,然后强行ac了. # ...

  5. 2018/03/19 每日一个Linux命令 之 touch

    touch 英文翻译为 触碰 很形象 touch [文件] 就像我就碰你一下,什么都不干..... 如果没有这个文件则我就新建这个文件 会修改这个文件的最后修改时间 没有的话则会产生一个0字节大小的空 ...

  6. mybatis中大于等于、小于等于的写法

    在xml格式中,常常会遇到xml解析sql时候出错,这个时候需要用其他符号来表示.在mybatis中会遇到,需要做如下的转换:

  7. paas平台

    paas平台 定义:PaaS是云计算中重要的一类服务,为用户提供应用的全生命周期管理和相关的资源服务.通过PaaS,用户可以完成应用的构建.部署.运维管理,而不需要自己去搭建计算环境,如安装服务器.操 ...

  8. lua 获取指定目录下指定后缀文件名

    lfs库是很好的选择,可惜不会编译,无奈只能自己写个简单的lua库.代码如下: #include <io.h> #include <stdio.h> #include &quo ...

  9. Tensorflow(二)

    1---------------- 试用tensorflow的模块,必须配套tensorflow的方法 import tensorflow as tf a=3 ##定义 行向量 w=tf.Variab ...

  10. Spark On Yarn Cluster生产环境下JVM的OOM和Stack Overflow问题

    1.Spark on Yarn下JVM的OOM问题及解决方式 2.Spark中Driver的Stack Overflow的问题及解决方式 Spark on Yarn cluster mode: 此时有 ...