一、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. Postfix邮件

    一() 邮件相关协议 SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议, 工作在TCP的25端口.它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的 ...

  2. POJ 1556 - The Doors - [平面几何+建图spfa最短路]

    题目链接:http://poj.org/problem?id=1556 Time Limit: 1000MS Memory Limit: 10000K Description You are to f ...

  3. POJ_3264_Balanced Lineup

    Balanced Lineup Time Limit: 5000MS   Memory Limit: 65536K Total Submissions: 57259   Accepted: 26831 ...

  4. MTU-TCP/IP协议栈-linux kernel-TCP丢包重传-UDP高性能-AI- ip数据报 tcp数据报

    1.IP协议首部 TCP报文段的首部  UDP分组结构   ip数据报 tcp数据报 UDP校验 w 报文长度该字段指定UDP报头和数据总共占用的长度.可能的最小长度是8字节,因为UDP报头已经占用了 ...

  5. snowflake and uuid

    分布式系统中,有一些需要使用全局唯一ID的场景,这种时候为了防止ID冲突可以使用36位的UUID,但是UUID有一些缺点,首先他相对比较长,另外UUID一般是无序的. 有些时候我们希望能使用一种简单一 ...

  6. ios-Objective-C中的各种遍历(迭代)方式(转载)

    iOS开发实用技巧—Objective-C中的各种遍历(迭代)方式 说明: 1)该文简短介绍在iOS开发中遍历字典.数组和集合的几种常见方式. 2)该文对应的代码可以在下面的地址获得:https:// ...

  7. ARP报文

    硬件类型:指明了发送方想知道的硬件接口类型,以太网的值为1: 协议类型:指明了发送方提供的高层协议类型,IP为0x0800(16进制): 硬件地址长度和协议长度:指明了硬件地址和高层协议地址的长度,这 ...

  8. gitlab启用https的配置

    vim /etc/gitlab/gitlab.rb external_url 'https://101.101.101.63'    #启用https,默认是http (改端口:external_ur ...

  9. sql server中的日期详解使用(convert)

    转自:http://blog.csdn.net/hehe520347/article/details/48496853 有个字段值例如2012-07-02 00:00:00.000 转化成 2012- ...

  10. Tensorflow(一)

    一.安装Ubantu环境 下载ios 网址:http://cn.ubuntu.com/download/ 2.配合虚拟机进行安装环境 虚拟机直接百度下载即可 虚拟机采用 3.配置 4.安装中 5.安装 ...