python【os模块文件读写操作】超详细

一、os 模块是什么:

os 模块是python 标准库中整理文件和目录最为常用的模块,该模块提供了非常丰富的方法用来处理文档和目录

二、认识文件路径分隔符:

- 路径表示

"\"在windows操作系统中表示区分文件的存储路径层级关系比如: test是D盘下的直系目录,可以表示为:D:\test but

"D:/test" # "/"是本地也是就客户端 文件系统区分层级关系的标识符

r"D\test" "\" 右斜杠在python语言中具有转义字符的意思,r的意思是将字符串视为原始字符串,这意味着将忽略所有转义码,按照原来意思输出

"D:\\test" # \\ 表示绝对路径,在程序处理文件存储路径中,"\\" 表示 "/",是上一层文件目录与下一层文件目录的分隔符,区分上下层级关系。

三、如何区分相对路径和绝对路径:

1、绝对路径就是无论从外部还是内部访问,都能够通过此路径找到文件夹,而相对路径是相对于自身的,其他位置的文件和路径,只能通过内部访问。
2、外部不能通过此路径访问到文件,通俗的来说,绝对路径是一条大家都能够通到目的地的路;而相对路径是一条只有你自己知道怎么走的路。
资料来源: https://jingyan.baidu.com/article/358570f6b854f98f4624fc6b.html

相对路径:指的是内部访问,从内部的一个文件去另一个文件

./test.html 和test.html 表达的含义是一致的,表示的是当前位置是:test.html

../ceshi.py 表示的是上一级目录,也就是说假如有个文件是ceshi.py,在test.html的下面,ceshi.py的路径为:test.html/ceshi.py

ceshi.py 的路径./test/ceshi.py ,ceshi2.py的路径 ./test/xiangdui/ceshi2.py ,现在当前位置在ceshi.py,想去ceshi2.py这个位置 采用的方法就是: “../test/ceshi.py”

绝对路径:指的是从外部访问,从外部直接去一个文件。

假如我要去ceshi.py: D:/test.html/ceshi.py,通过D:/test.html/ceshi.py直接就可以到达。

os模块的常用方法:(谨记 “-”符号不是特殊字符只是作者在写os模块笔记时,用来区分行与行之间层次关系的符号,测试时一定要去掉)

getcwd() :获取当前执行文件的路径

os.getcwd()

使用方法:os.getcwd()
      - import os
      - fuck = os.getcwd()
      - print(fuck)

listdir() :传入一个path路径,返回的是该路径下所有直系文件目录 值是一个列表

使用方法:os.listdir()

- import os
        - import pprint
        - patth = 'E:/Java软件'  释义:将E盘下的java文件复制给patth对象。
        - fuck = os.listdir(patth)  释义:调用os模块中listdir方法将对象patth传递进去。
        - pprint.pprint(fuck)  释义:格式化打印看起来比较规整。

walk() :传入任意一个path路径,深层次变例每一个文件的内容,返回的结果是一个由路径,文件夹列表,文件列表组成的元组。

使用方法:os.walk()

-  patth = 'E:/Java软件'
       - for patth,dir,file in os.walk(patth):
         print(patth)         释义:paath 返回的是一个文件路径
         pprint.pprint(dir)   释义:dir 返回的是一个个文件夹目录,先从Java文件夹开始,遍历出下一层所有文件夹,遍历完成后,会遍历出的第一个文件夹开始,遍历出本文件夹下的所有文件夹,如果没有文件则会返回为空
         pprint.pprint(file)  释义:返回的是一个个文件,xxx不包括文件夹xxxx

path.exists() : 用于测试的文件路径是否存在

使用方法:os.path.exists()

path = 'E:\Java软件'
        if  os.path.exists(path):
            print("指定的文件夹存在")
        else:
            print("指定的问价夹不存在")

mkdir() : 传入一个path路径,创建单层(直系文件)文件夹;如果文件夹已经存在,就会报错。

使用方法:os.mkdir(path)

 - path = 'E:\Java软件'
          os.getcwd()
          patth = os.getwd()+"/cesi_fuck"
          os.mkdir(patth)

makedirs() : 传入一个path路径,生成一个递归文件夹(多层级文件夹)(E:\java文件\cesi_fuck\hua_wei) 这就是一个多层级文件夹

使用方法: os.makedirs()

- path = 'E:\Java软件'
        os.getcwd()
        patth = path + '\\cesi_fuck\\hua_wei'
        os.makedirs(patth)

rmdir() :传入指定路径删除指定路径下的文件夹。注意: 该方法只能删除空文件夹,删除非空文件夹会报错

使用方法: os.rmdir()

path = r'C:\Users\HP\PycharmProjects\pythonProject\python常用模块\cesi_fuck'
      os.rmdir(path)

案例总结:

案例实操:测试本地是否存在指定的文件夹,如果存在删除文件重新创建一个指定的文件夹,否则直接创建这样一个文件夹

patth = r'E:\Java软件\cesi_fuck'
        os.getcwd() 释义:表示当前目录,就是当前python文件的运行的目录
        if os.path.exists(patth):
            os.rmdir(patth)
            os.mkdir(patth)
            print("文件夹已存在,删除后重新创建")
        else:
            os.mkdir(patth)
            print("指定的文件夹不存在,创建一个新的文件夹")

path.isdir(): 传入一个完整的文件路径,判断它是否是文件

使用方法: os.path.isdir()

fuck = os.getcwd()
     file_list = os.listdir(fuck) #返回当前工作路径下的文件夹
       for file in file_list:
            if os.path.isdir(file):
                print(file)

path.sep(): 返回当前操作系统的路径分隔符(层级关系用什么符号区分)

使用方法: os.path.sep()

 fuck = os.path.sep
       print(fuck)

path.abspath() :返回指定目录的“绝对路径”

使用方法: os.path.abspath()

path = os.getcwd()
      file = 'E:\Java软件\cesi_fuck'
      fuck = os.path.abspath(".")  #当前目录的绝对路径 和 os.getcwd() 是一样的
           - os.path.abspath("..") #返回当前目录的上一层目录的绝对路径
           - os.path.abspath(file) #当前路径相对于指定文件路径 “file” 的绝对路径

path.getsize() :传入一个文件的路径,会返回该文件的大小(计算文件大小的方法),谨记只能计算文件,不能是文件夹的大小

使用方法:os.getsize()

path = r'C:\Users\HP\PycharmProjects\pythonProject\python常用模块\测试3\Test text.txt'

- os.path.getsize(path)

测试可作为参考:

path.getsize()不是只能计算文件的大小吗? 我们可以通过两层for循环实现让它获取文件夹大小,谨记这里只是,从文件夹中一个一个遍历出每一个文件还是只能对文件大小进行计算,文件夹的话,我不能实现对他们的层叠相加,大家可以去试试

import os
import pprint
path = r'C:\Users\HP\PycharmProjects\pythonProject\python常用模块'
for patth,dir,file in os.walk(path):
    # print(file)
    for i in file:
        print(i)
        fuck = os.path.getsize(i)
        print(fuck)

返回的结果:

总结:对于计算机专业的学生来说,坚持才会是制胜的法宝,不排除有天赋异禀的人,事半功倍的人,但对于普通人来讲,只有不断的坚持,思考,耐心,细心,具备这些学者的所必备素质,方可初见成效。

有问题欢迎留言,小马随时为你的python学习之路鞍前马后。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
os 模块Python 中用于访问操作系统功能的一个模块,它提供了一种便携式的方法来使用操作系统相关的功能,例如读写文件、创建进程等。下面是 os 模块的一些常用功能及用法: 1. 获取当前工作目录:os.getcwd() ```python import os print(os.getcwd()) # 打印当前工作目录 ``` 2. 改变当前工作目录:os.chdir(path) ```python import os os.chdir('/Users/username/Desktop') # 将当前工作目录改变为桌面 ``` 3. 列出目录下的所有文件和子目录:os.listdir(path) ```python import os print(os.listdir('/Users/username/Desktop')) # 列出桌面下的所有文件和子目录 ``` 4. 创建目录:os.mkdir(path) ```python import os os.mkdir('/Users/username/Desktop/new_dir') # 在桌面上创建一个名为 new_dir 的文件夹 ``` 5. 删除目录:os.rmdir(path) ```python import os os.rmdir('/Users/username/Desktop/new_dir') # 删除桌面上的名为 new_dir 的文件夹 ``` 6. 判断路径是否为文件:os.path.isfile(path) ```python import os print(os.path.isfile('/Users/username/Desktop/test.txt')) # 判断桌面上的 test.txt 是否为文件 ``` 7. 判断路径是否为目录:os.path.isdir(path) ```python import os print(os.path.isdir('/Users/username/Desktop/new_dir')) # 判断桌面上的 new_dir 是否为目录 ``` 8. 判断路径是否存在:os.path.exists(path) ```python import os print(os.path.exists('/Users/username/Desktop/test.txt')) # 判断桌面上的 test.txt 是否存在 ``` 9. 删除文件:os.remove(path) ```python import os os.remove('/Users/username/Desktop/test.txt') # 删除桌面上的 test.txt 文件 ``` 总之,os 模块提供了很多强大的功能,可以让我们更加方便地操作文件和目录,同时也可以更好地与操作系统进行交互。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值