Python之os模块功能全解

2021-01-05 16:09:41 浏览数 (4232)

前言

os模块:是对操作系统的调用,模拟对操作系统的指令 

os 模块提供了一种使用操作系统相关功能的便携方式。如果您只想读取或写入文件,使用 open() 方法;如果要操作路径,使用 os.path 模块;如果要读取命令行中所有文件中的所有行 ,使用 fileinput 模块;有关创建临时文件和目录的信息,使用 tempfile 模块;有关高级文件和目录的处理,使用 shutil 模块。

下面对经常使用的功能进行介绍;

全解

1. 获取当前路径及路径下的文件

os.getcwd():查看当前所在路径。
os.listdir(path): 列举目录下的所有文件。返回的是列表类型。

import os

cp = os.getcwd()  # 获取当前路径, 返回绝对路径

print(cp)  # C:\Users\Desktop\w3cschool\os

fileList = os.listdir(cp)  # 获取路径下的文件,以及文件夹

print(fileList)  # ['os_.py', 'sub', 'test.txt']

2. 获取路径的绝对路径

os.path.abspath(path): 返回path的绝对路径

abspath1 = os.path.abspath(".")  # 返回当前路径的绝对路径

print(abspath1)  # C:\Users\Desktop\w3cschool\os

abspath2 = os.path.abspath("../")  # 返回上一层路径的绝对路径

print(abspath2)  # C:\Users\Desktop\w3cschool

3. 查看路径的文件夹部分和文件名部分

os.path.split(path): 将路径分解为(文件夹,文件名),返回的是元组类型。可以看出,若路径字符串最后一个字符是,则只有文件夹部分有值;若路径字符串中均无,则只有文件名部分有值。若路径字符串有\,且不在最后,则文件夹和文件名均有值。且返回的文件夹的结果不包含.

os.path.join(path1,path2,…): 将 path 进行组合,若其中有绝对路径,则之前的 path 将被删除。

catalogue_and_file1 = os.path.split('D:\pythontest\ostest\Hello.py')

print(catalogue_and_file1)  # ('D:\\pythontest\\ostest', 'Hello.py')

catalogue_and_file2 = os.path.split('.')

print(catalogue_and_file2)  # ('', '.')

catalogue_and_file3 = os.path.split('D:\pythontest\ostest\\')

print(catalogue_and_file3)  # ('D:\\pythontest\\ostest', '')

path_join1 = os.path.join('D:\pythontest', 'ostest')

print(path_join1)  # D:\pythontest\ostest

path_join2 = os.path.join('D:\pythontest\ostest', 'hello.py')

print(path_join2)  # D:\pythontest\ostest\hello.py

path_join3 = os.path.join('D:\pythontest\\b', 'D:\pythontest\\a')

print(path_join3)  # D:\pythontest\a

os.path.dirname(path):返回path中的文件夹部分,结果不包含’’;
os.path.basename(path):返回path中的文件名。

4.os.path模块详解

#获取

os.path.abspath()#获取某一个文件的绝对路径

os.path.getatime()#返回path所指的文件或目录的最后的存取时间,时间戳

os.path.getmtime()#返回path所指的文件或目录的最后的修改时间,时间戳

#以下三个可以不考虑路径是否存在

os.path.split('C:\a\tes.txt')#返回一个元组,两部分,一个目录,一个文件名

os.path.dirname(r'C:\a\tex.txt')#获取文件的绝对路径

os.path.basename(r'C:\a\tes.txt')#获取最后的值

#判断是否存在

os.path.exists(r'C:')#判断路径是否存在

os.path.isabs(r'C:\a')#判断是否一个绝对路径

os.path.isfile(r'C:\a\tes.txt')#判断是否一个文件

os.path.isdir()#是否是文件夹

#将多个部分组合成一个路径

os.path.join(r'C:’,r‘\b',r'\a.txt')#将多个路径组合返回

推荐好课:Python3 入门Python3 进阶