Python之路(第十四篇)os模块

一、os模块

1、os.getcwd()

获取当前工作目录(当前工作目录默认都是当前文件所在的文件夹)

  import os
  print(os.getcwd())

  

2、os.chdir(path)

改变当前工作目录,os.chdir()参数为路径

  
  import os
  print(os.getcwd())
  print(os.chdir(r"d:\python\exercise\test_package\a"))
  print(os.getcwd())

  

输出结果

  D:\06python\exercise\test_package
  None
  d:\06python\exercise\test_package\a #可以看到工作的路径变了

  

3、os.curdir os.pardir

os.curdir 返回当前目录: (‘.‘)os.pardir 获取当前目录的父目录字符串名:(‘..‘)

  import os
  print(os.curdir)
  print(os.pardir)

  

输出结果

  
  .
  ..

  

4、os.makedirs("dirname1/dirname2")

可生成多层递归目录

  
  import os
  os.makedirs(r"exercise\a\b\c")

  

输出结果

5、os.removedirs(”dirname1“)

递归删除文件夹 必须都是空目录,若目录为空,则删除,并递归到上一级目录,如若也为空,则删除,依此类推

  
  import os
  os.removedirs(r"exercise\a\b\c")

  

输出结果

6、os.mkdir(‘dirname‘)

生成单级目录;相当于shell中mkdir dirname

  
  import os
  os.mkdir("a")

  

输出结果

7、os.rmdir(‘dirname‘)

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

  
  import os
  os.rmdir("a")
  # os.rmdir("b")

  

输出结果

8、os.listdir(‘dirname‘)

列出指定目录下的所有文件和子目录,包括隐藏文件,并以列表方式打印

  
  import os
  print(os.listdir("a"))

  

输出结果

9、os.remove()

删除一个文件

  
  import os
  os.remove("a/x.py")

  

输出结果

10、os.rename("oldname","newname")

重命名文件/目录

linux平台下用os.rename(),os.rename不能直接在Windows平台下用,windows平台下用os.replace(),

  
  import os
  os.rename("test.py","new_test.py")

  

输出结果

11、os.stat(‘path/filename‘)

获取文件/目录信息

  
  import os
  print(os.stat("test.py"))

  

输出结果

  • st_mode: inode 保护模式
  • st_ino: inode 节点号。
  • st_dev: inode 驻留的设备。
  • st_nlink: inode 的链接数。
  • st_uid: 所有者的用户ID。
  • st_gid: 所有者的组ID。
  • st_size: 普通文件以字节为单位的大小;包含等待某些特殊文件的数据。
  • st_atime: 上次访问的时间。
  • st_mtime: 最后一次修改的时间。
  • st_ctime: 由操作系统报告的"ctime"。在某些系统上(如Unix)是最新的元数据更改的时间,在其它系统上(如Windows)是创建时间。

12、os.sep

输出操作系统特定的路径分隔符,win下为"\",Linux下为"/"

  
  import os
  print(os.sep)

  

输出结果

13、os.linesep

输出当前平台使用的行终止符,win下为"\r\n",Linux下为"\n"

14、os.pathsep

输出用于分割文件路径的字符串 win下为;,Linux下为:

15、os.name

输出字符串指示当前使用平台。win->‘nt‘; Linux->‘posix‘

16、os.system("bash command") os.popen("bash command“)

os.system("bash command") 运行shell命令,直接显示

os.popen("bash command”) 运行shell命令,获取执行结果

17、os.environ

获取系统环境变量

18、os.path.abspath(path)

返回path规范化的绝对路径,包含文件名

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

  

输出结果

19、os.path.split(path)

当path是文件的绝对路径时,将path分割成目录和文件名二元组返回

当path是一个文件目录的绝对路径时(类似“D:\06python\exercise\test_package”),os.path.split()将path分割成最后的一个文件夹为一部分,其他的前面为一部分

  
  import os
  print(os.path.split(__file__))

  

输出结果

例子2

  
  import os
  print(os.path.split(r"D:\06python\exercise\test_package"))

  

输出结果

20、os.path.dirname(path)

返回path的目录。其实就是os.path.split(path)的第一个元素。

参数path为文件时os.path.dirname()是获取文件的完整绝对路径中的目录部分(去掉文件名)

参数path为目录时os.path.dirname()获取完整路径当中的目录部分,获取上一级目录的绝对路径

os.path.dirname(os.path.dirname(path))是获取的返回该目录的上一级目录,即获取指定目录(os.path.dirname(path)的结果)的上一级目录的绝对路径

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

  

输出结果

分析:这里的输出结果后两个是斜杠,而第一个os.path.abspath输出的是win平台中常见的反斜杠,原因是pycharm做的优化

小实验

从这个结果可以看出,直接使用python解释器的结果仍然是反斜杠

同样的文件在pycharm中执行,pycharm中输出的就是斜杠

21、os.path.basename(path)

当参数path为文件的绝对路径时返回path最后的文件名。如何path以/或\结尾,那么就会返回空值。即os.path.split(path)的第二个元素。

当参数path是一个文件目录的绝对路径时(类似“D:\06python\exercise\test_package”),返回的是最后一个文件夹的名字

22、os.path.exists(path)

判断文件或者目录存不存在,如果path存在,返回True;如果path不存在,返回False

23、os.path.isabs(path)

如果path是绝对路径,返回True

  
  import os
  print(os.path.isabs(r"D:\06python\exercise\test_package\test.py"))
  print(os.path.isabs(r".\test_package\test.py"))
  print(os.path.isabs(__file__))
  v =os.path.isabs(r"D:\06python\exercise\test_package")
  print(v)
  print(type(v))

  

输出结果

分析:这里即使是不存在的绝对路径也会返回True

24、os.path.isfile(path)

如果path是一个存在的文件,返回True。否则返回False

  
  import os
  print(os.path.isfile(r"D:\06python\exercise\test_package\test.py"))
  print(os.path.isfile(r"D:\06python\exercise\test_package\t.py"))
  v =os.path.isfile(r"D:\06python\exercise\test_package")
  print(v)
  print(type(v))

  

输出结果

25、os.path.isdir(path)

如果path是一个存在的目录,则返回True。否则返回False

26、os.path.join(path1[, path2[, ...]])

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

  import os
  print(os.path.join(r"D:\06python\exercise",r"test_package\test.py"))
  print(os.path.join(r"D:\06python\exercise",r"test_package\t.py"))  #不存在的路径也能合成
  print(os.path.join(r"D:\06python\exercise",r"/test_package\t.py"))
  """如果第二个参数存在斜杠或者反斜杠,之前的参数会被忽略即第一个绝对路径之前的参数将被忽略"""
  print(os.path.join(r"D:\06python\exercise","test_package"))

  

输出结果

27、os.path.getatime(path)os.path.getmtime(path)

os.path.getatime(path) 返回path所指向的文件或者目录的最后存取时间os.path.getmtime(path) 返回path所指向的文件或者目录的最后修改时间

  
  import os
  print(os.path.getatime(__file__)) # 返回path所指向的文件或者目录的最后存取时间
  print(os.path.getmtime(__file__)) # 返回path所指向的文件或者目录的最后修改时间
  print(os.path.getatime(r"D:\06python\exercise\test_package"))
  print(os.path.getmtime(r"D:\06python\exercise\test_package"))

  

输出结果

28、os.path.getsize(path)

返回path(文件或者目录下的所有文件)的大小

  
  import os
  print(os.path.getsize(__file__))
  print(os.path.getsize(r"D:\06python\exercise\test_package"))

  

输出结果

原文地址:https://www.cnblogs.com/Nicholas0707/p/9011854.html

时间: 2024-10-22 04:09:14

Python之路(第十四篇)os模块的相关文章

Python之路(第十八篇)shutil 模块、zipfile模块、configparser模块

一.shutil 模块 1.shutil.copyfileobj(fsrc, fdst[, length]) 将文件内容拷贝到另一个文件中,需要打开文件 import shutil shutil.copyfileobj(open("old_test.txt","r"),open("new_test.txt","w")) 输出结果 2.shutil.copyfile(src,dst) 复制文件内容到另外一个文件,不需要打开文件,

第三十五篇 os模块、sys模块、json模块、pickle模块

目录 一.os模块 二.sys模块 三.json模块 dump和load 四.pickle模块 一.os模块 os模块和操作系统交互,主要用于文件操作 import os # test.py文件中 # os.mkdir() 一个路径参数和一个字符串参数.如果有路径参数,则在该路径下创建一个新的文件夹:如果无路径参数,则在当前文件的同级路径下创建一个新的文件夹 os.mkdir('king') # 创建了和test.py文件同级目录下的名为king的文件夹 # os.removedirs() 一个

Python之路【第四篇】:模块

什么是模块: 模块就是一个功能的集合. 模块就和乐高积木差不多,你用这些模块组合出一个模型,然后也可以用这个模块加上其他的模块组合成一个新的模型 模块的种类: 1.内置模块(python自带的比如os.file等模块) 2.自定义模块,自己写的模块 3.第三方模块 模块的导入: import module from module.xx.xx import xx from module.xx.xx import xx as rename from module.xx.xx import * 内置模

Python开发【第十四篇】:Python操作MySQL

本篇对于Python操作MySQL主要使用两种方式: 原生模块 pymsql ORM框架 SQLAchemy pymsql pymsql是Python中操作MySQL的模块,其使用方法和MySQLdb几乎相同. 下载安装 pip3 install pymysql 使用操作 1.执行SQL #!/usr/bin/env python # -*- coding:utf-8 -*- import pymysql # 创建连接 conn = pymysql.connect(host='127.0.0.1

Python开发【第十四篇】:Web框架本质

Web框架本质 众所周知,对于所有的Web应用,本质上其实就是一个socket服务端,用户的浏览器其实就是一个socket客户端. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 #!/usr/bin/env python #coding:utf-8   import socket   def handle_request(client):     buf = client.recv(1024)     client.send("

Python之路(第二十六篇) 面向对象进阶:内置方法

一.__getattribute__ object.__getattribute__(self, name) 无条件被调用,通过实例访问属性.如果class中定义了__getattr__(),则__getattr__()不会被调用(除非显示调用或引发AttributeError异常) class Foo: ? def __init__(self,x): self.x = x ? def __getattr__(self, item): print("执行__getattr__") ?

Python之路(十四):网络编程基础

Python基础之网络编程 学习网络编程之前,要对计算机底层的通信实现机制要有一定的理解. OSI 互联网协议按照功能不同分为osi七层或tcp/ip五层或tcp/ip四层 可以将应用层,表示层,会话层并作应用层,从tcp/ip五层协议的角度来阐述每层的由来与功能,搞清楚了每层的主要协议 就理解了整个互联网通信的原理. 首先,用户感知到的只是最上面一层应用层,自上而下每层都依赖于下一层,所以我们从最下一层开始切入,比较好理解 每层都运行特定的协议,越往上越靠近用户,越往下越靠近硬件. 物理层 物

Python之路【第四篇】:Python基础(19)——装饰器

#普通装饰器# (@+函数名),需要记住关键两点:#功能:#1.自动执行outer函数,并且将其下面的函数名f1当作参数传递#2.将outer函数的返回值,重新赋值给f1 # #装饰器必备# ####第一:函数名和执行函数##### def foo(): #创建函数# print('hello') #函数体# foo #表示是函数名,代指整个函数# foo() #表示执行f00函数# # 输出:hello # ####第二:函数被重新定义#### def foo():# print("foo1&

【Python之路】第四篇--Python基础之函数

三元运算 三元运算(三目运算),是对简单的条件语句的缩写 # 书写格式 result = 值1 if 条件 else 值2 # 如果条件成立,那么将 "值1" 赋值给result变量,否则,将"值2"赋值给result变量 基本数据类型补充 set set集合,是一个无序且不重复的元素集合 class set(object): """ set() -> new empty set object set(iterable) ->