标准库模块——OS模块

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

os.makedirs()

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

1
2
import  os
print(os.makedirs(r'c:\b\c\d'))      #递归的创建文件。
1
2
3
4
5
6
7
8
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()

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

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

os.mkdir

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

1
2
import os
os.mkdir('wq')

os.rmdir()

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

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

los.listdir()

输出指定文件夹的内容。

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

os.getcwd()

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

1
2
3
4
import  os
print(os.getcwd())
 
E:\python\base\test

os.chdir()

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

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

os.curdir()

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

1
2
import  os
print(os.curdir)

os.pardir()

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

1
2
import  os
print(os.pardir)

文件相关:

os.remove()

删除一个文件

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

os.rename()

重命名一个文件/目录

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

os.stat()

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

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

路径相关:

os.path.abspath

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

1
print(os.path.abspath(__file__))E:\python\base\11.py

os.path.split()

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

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

os.path.dirname()

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

1
2
3
print(os.path.dirname(os.path.abspath(__file__)))
 
E:\python\base

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

1
2
3
print(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
 
E:\python

os.path.basename()

只取文件名。

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

os.path.exists()

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

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

os.path.isabs()

判断是否为绝对路径。

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

os.path.isfile()

判断是否是一个文件。

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

os.path.isdir()

判断是否是一个目录。

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

os.path.join()

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

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

os.path.getatime()

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

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

os.path.getmtime()

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

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

os.path.getsize()

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

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

os.walk

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

1
2
3
4
5
6
7
8
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 下为:‘/’

1
2
import  os
print(os.sep())

os.linesep()

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

1
2
import  os
print(os.linesep())

os.pathsep()

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

1
2
import  os
print(os.pathsep())

os.name()

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

1
2
import  os
print(os.name())

os.urandom(32)

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

 

1
2
3
4
5
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()

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

1
2
import  os
print(os.environ())

os.system()

1
2
import os
os.system('dir')

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

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

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

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

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

1
2
3
4
5
6
import os
dir_res=os.system('dis')
if dir_res == 0:
    print('haha')
else:
    print('hehe')

os.popen()

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

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

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

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

 os.getpid()

可以查看当前的进程ID

1
2
3
4
5
6
7
8
9
10
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

1
2
3
4
5
6
7
8
9
10
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  

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

1
2
3
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 @   新兵蛋Z  阅读(42)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core GC计划阶段(plan_phase)底层原理浅谈
· .NET开发智能桌面机器人:用.NET IoT库编写驱动控制两个屏幕
· 用纯.NET开发并制作一个智能桌面机器人:从.NET IoT入门开始
· 一个超经典 WinForm,WPF 卡死问题的终极反思
· ASP.NET Core - 日志记录系统(二)
阅读排行:
· 在外漂泊的这几年总结和感悟,展望未来
· 博客园 & 1Panel 联合终身会员上线
· 支付宝事故这事儿,凭什么又是程序员背锅?有没有可能是这样的...
· https证书一键自动续期,帮你解放90天限制
· 在 ASP.NET Core WebAPI如何实现版本控制?
点击右上角即可分享
微信分享提示