os模块(二十)

时间:2022-11-12 18:05:31

os模块是与操作系统交互的一个接口

os.getcwd() 获取当前工作目录,即当前python脚本工作的目录路径
os.chdir("dirname") 改变当前脚本工作目录;相当于shell下cd
os.curdir 返回当前目录: ('.')
os.pardir 获取当前目录的父目录字符串名:('..')
os.makedirs('dirname1/dirname2') 可生成多层递归目录
os.removedirs('dirname1') 若目录为空,则删除,并递归到上一级目录,如若也为空,则删除,依此类推
os.mkdir('dirname') 生成单级目录;相当于shell中mkdir dirname
os.rmdir('dirname') 删除单级空目录,若目录不为空则无法删除,报错;相当于shell中rmdir dirname
os.listdir('dirname') 列出指定目录下的所有文件和子目录,包括隐藏文件,并以列表方式打印
os.remove() 删除一个文件
os.rename("oldname","newname") 重命名文件/目录
os.stat('path/filename') 获取文件/目录信息
os.sep 输出操作系统特定的路径分隔符,win下为"\\",Linux下为"/"
os.linesep 输出当前平台使用的行终止符,win下为"\r\n",Linux下为"\n"
os.pathsep 输出用于分割文件路径的字符串 win下为;,Linux下为:
os.name 输出字符串指示当前使用平台。win->'nt'; Linux->'posix'
os.system("bash command") 运行shell命令,直接显示
os.environ 获取系统环境变量
os.path.abspath(path) 返回path规范化的绝对路径
os.path.split(path) 将path分割成目录和文件名二元组返回
os.path.dirname(path) 返回path的目录。其实就是os.path.split(path)的第一个元素
os.path.basename(path) 返回path最后的文件名。如何path以/或\结尾,那么就会返回空值。即os.path.split(path)的第二个元素
os.path.exists(path) 如果path存在,返回True;如果path不存在,返回False
os.path.isabs(path) 如果path是绝对路径,返回True
os.path.isfile(path) 如果path是一个存在的文件,返回True。否则返回False
os.path.isdir(path) 如果path是一个存在的目录,则返回True。否则返回False
os.path.join(path1[, path2[, ...]]) 将多个路径组合后返回,第一个绝对路径之前的参数将被忽略
os.path.getatime(path) 返回path所指向的文件或者目录的最后存取时间
os.path.getmtime(path) 返回path所指向的文件或者目录的最后修改时间
os.path.getsize(path) 返回path的大小

removedir:若目录不为空则不允许删除

import os

print(os.getcwd()) # F:\Python3\os_module
os.chdir('test1')
print(os.getcwd()) # F:\Python3\os_module\test1
os.chdir('..') # 再返回到上一层,当前目录的父目录
print(os.getcwd()) # F:\Python3\os_module #os.mkdir('test2')
#os.remove('test2/dd.py')
#os.removedirs('test2')
print(os.listdir('.')) # ['os_test.py', 'test1', '__init__.py']
print(os.stat('test1/sss.py')) print(os.system('dir')) print(os.path.basename('./test1/sss.py')) # sss.py
print(os.path.dirname('./test1/sss.py')) # ./test1
print(os.path.split('./test1/sss.py')) # ('./test1', 'sss.py') a = './test1'
b = 'sss.py'
print(os.path.join(a,b)) # ./test1\sss.py 路径拼接

输出:

F:\Python3\os_module
F:\Python3\os_module\test1
F:\Python3\os_module
['os_test.py', 'test1', 'test2', '__init__.py']
os.stat_result(st_mode=33206, st_ino=3096224743900082, st_dev=536793, st_nlink=1, st_uid=0, st_gid=0, st_size=10, st_atime=1551150244, st_mtime=1551150244, st_ctime=1551150188)
������ F �еľ�û�б�ǩ��
������к��� 0008-30D9 F:\Python3\os_module ��Ŀ¼ 2019-02-26 11:19 <DIR> .
2019-02-26 11:19 <DIR> ..
2019-02-26 11:19 663 os_test.py
2019-02-26 11:04 <DIR> test1
2019-02-26 11:02 <DIR> test2
2019-02-26 10:41 0 __init__.py
2 ���ļ� 663 �ֽ�
4 ��Ŀ¼ 147,671,588,864 �����ֽ�
0
sss.py
./test1
('./test1', 'sss.py')
./test1\sss.py
# bin.py 文件
import os
print(__file__) # F:/Python3/module_test/bin/bin.py pycharm生成的文件名,实际上只是 bin.py
print(__name__)
print(os.path.dirname(__file__)) # F:/Python3/module_test/bin bin.py的文件路径
print(os.path.dirname(os.path.dirname(__file__))) # F:/Python3/module_test 再往上一层
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) # os.path.abspath 绝对路径
# 不管在终端还是pycharm都可以使用
print(BASE_DIR) # cal.py文件所在的路径
import sys
sys.path.append(BASE_DIR) # 添加环境变量找到cal.py文件
import cal
print(cal.add(1,2))