标准库模块——OS模块

OS模块,主要是用与工作目录,路径,文件等相关。
python文件的工作目录相关:

os.makedirs()

递归的创建一些文件夹。文件中的文件,配合exists进行使用。

import  os
print(os.makedirs(r'c:\b\c\d'))      #递归的创建文件。
import os
file = r'222\111\333\222\111'
lis = os.path.join(os.path.dirname(__file__),file)
#找到要放入的文件路径(以当前文件,进行的拼接)
if not os.path.exists(lis): #判断如果没有那么将会新建一个路径
    os.makedirs(lis)
with open(lis+r'\a.txt',mode='w',encoding='utf-8') as f:
    f.write('hahaha')

os.removedirs()

删除目录,如果文件夹内没有文件,将删除上一级目录,直到全部删除。找不到目录将会报错。

import  os
print(os.removedirs(r'c:\b\c\d'))

os.mkdir

创建单级目录,上当与shell中mkdir dirname ****

import os
os.mkdir('wq')

os.rmdir()

删除单级空目录,若目录不为空则无法删除,报错:相当于shell中rmdir dirname ***

import  os
print(os.rmdir(r'c:\b\c\d'))

los.listdir()

输出指定文件夹的内容。

path = "/var/www/html/"
dirs = os.listdir( path )

os.getcwd()

显示现在的工作目录,即当前python脚本工作的目录路径。

import  os
print(os.getcwd())

E:\python\base\test

os.chdir()

更改工作路径。两种方法。推荐使用加r的方式。相当于shell下cd。

import  os
print(os.chdir(r'C:\Users'))
print(os.chdir('C:\\Users'))

os.curdir()

返回当前目录。('.')

import  os
print(os.curdir)

os.pardir()

返回上一级目录。('..')

import  os
print(os.pardir)

文件相关:

os.remove()

删除一个文件

import  os
print(os.remove(r'c:\b\c'))

os.rename()

重命名一个文件/目录

import  os
print(os.rename('aaa','bbb'))   #a=原名   b=新名

os.stat()

可以查看文件的详细信息,比如大小,权限,创建日期等等。

import  os
print(os.stat(r'C:\b'))

路径相关:

os.path.abspath

让系统将文件的相对路径,智能的更改到绝对路径。

print(os.path.abspath(__file__))

E:\python\base\11.py

os.path.split()

将路径和文件进行分割,以元组形式输出。

import  os
print(os.path.split(r'c:\b\c\d\a.txt'))

os.path.dirname()

返回目录名,不要文件名,可以配合上面那个使用。

print(os.path.dirname(os.path.abspath(__file__)))

E:\python\base

如果需要多级,那么些多个。。。

print(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))

E:\python

os.path.basename()

只取文件名。

import  os
print(os.path.basename(r'c:\b\c\d\a.txt'))

os.path.exists()

判断路径是否存在。存在返回True,不存在返回False

import  os
print(os.path.exists(r'c:\b\c\d\a.txt'))

os.path.isabs()

判断是否为绝对路径。

import  os
print(os.path.isabs(r'c:\b\c\d\a.txt'))

os.path.isfile()

判断是否是一个文件。

import  os
print(os.path.isfile(r'c:\b\c\d\a.txt'))

os.path.isdir()

判断是否是一个目录。

import  os
print(os.path.isdir(r'c:\b\c\d\a.txt'))

os.path.join()

将多个路径组合后返回,第一个绝对路径之前的参数将被忽略。

import  os
print(os.path.join(r'c:',r'\a.txt'))

os.path.getatime()

获取最后一个存取时间。返回第一个时间戳。

import  os
print(os.path.getatime(r'C:\a.txt'))

os.path.getmtime()

获取最后一个修改时间,返回一个时间戳。

import  os
print(os.path.getatime(r'C:\a.txt'))

os.path.getsize()

显示文件内字符字符串的个数。

import os
a = os.path.getsize('course_list.pickle')
print(a)
a = os.path.getsize('course_list.pickle')
if a is not 0:
    print('111111')

os.walk

将文件夹内的所有文件找出。

import os
path = os.walk(r'D:/python/1111')   #walk会生成一个可迭代对象,需要进行for循环。
for a,b,c in path:
#通过for循环,walk会将该文件夹内的所有文件夹都依次循环,每个循环都会产生一个固定格式的内容。
#每一次循环会生成以元组格式的三个内容(固定的)
#a:文件路径,b:以发现的文件夹名称 c:当前文件夹中的所有文件
    for item in c:
        print(os.path.join(a,item))   #用路径拼接的方式,将文件路径和所找到的文件进行拼接。

操作系统相关:

os.sep()

输出操作系统特定的路径分隔符。win下为:‘\\’ , linux 下为:‘/’

import  os
print(os.sep())

os.linesep()

输出操作系统特定的换行分隔符。win下为:‘\r\n’,linux下为:‘/n’

import  os
print(os.linesep())

os.pathsep()

查看系统多路径的路径分隔符。 win下为:‘;’,linux下为:‘:’

import  os
print(os.pathsep())

os.name()

输出字符串指示当前的系统平台。win下为:‘nt’,linux下为:‘posix’

import  os
print(os.name())

os.urandom(32)

随机生成一个32字节的字符串

 

import os
print(os.urandom(32))


#b'\x9d\x13cu\x15\xdf\x10\xfd\xa5\\\x14\x10\xe4"\x02x\xbcFp\xb7\xa5\t[A\x8e\xdefo\x00\xe3\x97\x93'

 

os.environ()

获取当前系统的环境变量。

import  os
print(os.environ())

os.system()

import os
os.system('dir')

可以进行对系统命令的输入只执行命令,不保存结果。
例如:输入一个dir命令。

打印出来的结果,命名为dir_res,并可以查看dir命令是否可以运行。

import os
dir_res=os.system('dir')
print("--->",dir_res)

0:为命令可以输出
1:为命令错误

如果系统命令可以正常执行,那么显示haha,否则显示hehe

import os
dir_res=os.system('dis')
if dir_res == 0:
    print('haha')
else:
    print('hehe')

os.popen()

import os
dir_res=os.popen('dir')
print(dir_res)
<os._wrap_close object at 0x000001A5F089E630>

可以打印一个内存对象地址。表示输出系统命令后,将该值保存在一个内存里。

如果需要查看完成,就需要添加一个命令。
必须用read命令来取一下该值。

import os
dir_res=os.popen('dir').read()
print(dir_res)

 os.getpid()

可以查看当前的进程ID

from multiprocessing import Process
import os
def f():
    print(os.getpid())   #子进程ID
    print(os.getppid())   #父进程ID
if __name__ == '__main__':
    for i in range(2):
        p = Process(target=f)  
        p.start()   
        p.join() 

os.getppid()

可以查看当前的父进程的ID

from multiprocessing import Process
import os
def f():
    print(os.getpid())   #子进程ID
    print(os.getppid())   #父进程ID
if __name__ == '__main__':
    for i in range(2):
        p = Process(target=f)  
        p.start()   
        p.join()

os.stat('path/filename')获取文件/目录信息的结构说明:

os.stat(path).st_size  

获取文件大小(以字节来输出)

import os
data_size = os.stat('a.log').st_size
print(data_size)

os.stat(path).st_mode:inode保护模式

os.stat(path).st_ino:inode节点号

os.stat(path).st_dev:inode驻留的设备

os.stat(path).st_nlink:inode的连接数

os.stat(path).st_uid:所有者的用户ID

os.stat(path).st_gid:所有者的组ID

os.stat(path).st_atime:上次访问的时间

os.stat(path).st_mtime:最后一次修改时间

os.stat(path).st_ctime:创建时间

 

posted @ 2017-07-27 13:57  新兵蛋Z  阅读(36)  评论(0编辑  收藏  举报