python学习笔记 day19 常用模块(四)
os 模块---和操作系统相关
1. os.getcwd() # 获得当前的工作目录(路径)也就是python脚本工作的目录
import os print(os.getcwd())
运行结果:
2.os.chdir('dirname') # 更改当前的工作目录
import os print(os.getcwd()) # 得到当前的工作目录 os.chdir('E:\pyhtonworkspace\py3-pratice\Pycharm_workspace\python_fullstack\week5') # 更改文件目录 print(os.getcwd())
运行结果:
3. os.curdir # 返回. 表示留在当前目录;
os.pardir # 返回.. 表示返回上一级;
import os print(os.curdir) # 返回.表示留在当前工作路径下 print(os.pardir) # 返回.. 表示返回上一级目录
运行结果:
4.os.makedirs('filename1/filename2') # 创建文件夹/文件;
os.removedirs() # 删除文件夹;
import os os.makedirs('filename1') # 在当前工作目录下创建filename1 的文件夹 os.makedirs('filename1/filename2') # 在当前目录的文件夹filename1下再创建一个子文件夹filename2 os.makedirs('filename1/filename3') # 在当前目录的文件夹 filename1 下在创建一个子文件夹filename3 (与filename2同级)
运行结果:
然后再来执行删除文件夹的操作:
os.removedirs('filename1/filename2') # 删除filename1文件夹下的filename2 ,此时filename1和filename3会存在
运行结果:
再来删除filename3子文件夹:
os.removedirs('filename1/filename3') # 删除filename1 文件夹下的filename3 由于filename1下的两个子文件夹都已被删除,所以fiename1为空 也会被删除掉
运行结果:
5. os.mkdir('filename') # 创建一个文件夹(makedirs(‘filename1/filename2’)是创建文件夹/子文件夹);
os.rmdir('filename') # 删除一个文件夹(removedirs('filename1/filename2') 删除文件夹/子文件夹);
import os os.mkdir('info') os.mkdir('info2')
运行结果:
删除这两个文件:
import os os.rmdir('info') os.rmdir('info2')
运行结果:
6. os.remove('filename') # 删除一个文件;
os.rename('oldname','newname') # 重命名一个文件;
import os os.rename('info.txt','info2.txt')
运行结果:
当 os.remove('filename') 时:
7. os.listdir('dirname') # 列出当前目录下的子文件夹和文件
import os print(os.listdir(os.getcwd())) # 首先os.getcwd()获得当前工作目录,然后os.listdir(dirname)获得该目录下的子文件夹和所有文件
运行结果:
只会显示 当前工作目录下的所有文件(01.py 和 filename3)和子文件夹(filename1), filename2不会显示 因为它不是直接属于day05这个文件夹下面,而是属于filename1文件夹
8. os.stat('filename') # 可以显示当前文件的结构信息:
import os print(os.stat('01.py'))
运行结果:
9. os.sep # 显示操作系统指定的文件路径分隔符(win 下面是 \ linux是 /)[win:一个文件目录中各层级之间的分割用/]---------python 代码的跨平台
os.linesep # 输出当前平台使用的行终止符 win是\t\n linux 是 \n
os.pathsep # 输出当前平台用于分割文件路径的字符串 win是; linux 是: [win:比如环境变量中 各个文件路径之间用;隔开,表示不同的文件目录]
os.name ---输出字符串 指定当前的使用平台 ‘nt’--->win ; 'posix'----->linux
10. os.system('bash commond ') # 指定终端命令。无返回值;
os.popen('bash commond') # 运行shell命令,有返回值,获取执行结果
import os os.system('dir') # os.system('bash commond') 无返回值
运行结果:
再来看有返回值的os.popen('bash commond')
import os ret=os.popen('dir').read() print(ret)
运行结果:
11. os.path.abspath(path) # 返回path规范化的绝对路径
os.path.split(path) # 将path分割成目录和文件名的二元组返回
os.path.dirname(path) # 返回参数path的目录,其实也就是os.path.split(path)的第一个元素;
os.path.basename(path) # 返回参数path工作目录的文件名 其实就是os.path.split(path)的第二个元素;
import os print(os.getcwd()) # 返回当前的工作目录 print(os.path.split(os.getcwd())) # 将当前的工作目录使用os.path.split(path) 分割成文件名和目录 的二元组 print(os.path.dirname(os.getcwd())) # 返回当前工作目录的目录,其实就是os.path.split(path)的第一个元素 print(os.path.basename(os.getcwd())) # 返回path 当前工作目录的文件名,os.path.split(path)的第二个元素
运行结果:
12. os.path.exits(path) # 判断path是否存在;
os.path.isabs(path) # 判断path否是绝对路径;
os.path.isdir(path) # 判断path是否是存在的目录
os.path.isfile(path) # 判断path是否是存在的文件;
os.path.join(path1,path2) # 可以将多个路径组合起来
import os print(os.path.join('c:user','user','file1','file2')) # 可以将多个path组合起来
运行结果:
13. os.path.getsize(path) 返回path的大小
import os print(os.path.getsize(os.getcwd())) # 返回当前工作目录path(os.getcwd())的大小 print(os.path.getsize(os.path.basename(os.path.join(os.getcwd(),'01.py')))) # 返回path(os.path.join(os.getcwd(),'01.py')中文件os.path.basename(path)的大小这个path不能只用os.getcwd() 得用os.path.join(path1,path2)拼接 才能获得文件01.py
运行结果:
talk is cheap,show me the code