os模块(二十)
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))