当前位置: 首页 > article >正文

python的文件目录操作 1

我们在实际开发中,经常需要对文件进行读取、遍历、修改等操作,通过 python 的标准内置os模块,能够以简洁高效的方式完成这些操作。常见的操作整理如下:

  • 文件夹操作:包括文件夹的创建、修改(改名/移动),查询(查看、遍历)、删除等。
  • 文件操作:包括文件的创建、修改、读取、删除等。
  • 路径操作:文件夹或文件的路径操作,如绝对路径,文件名与路径分割,扩展名分割等

导入os模块:

import os

listdir

获取文件及目录列表,像linux中的ls命令。

print(os.listdir())

image-20231118221327575

getcwd

获取当前目录路径,类似linux下的pwd命令。

print(os.getcwd())

image-20231118221411267

chdir

更换目录,类型linux下的cd命令。

# 先存一下当前路径
cur_path = os.getcwd()
# cur_path = r"\Undergraduate\School\Programme\Python_Learn"

# 打印当前路径
print(os.getcwd())

# 更改路径
os.chdir("/")
print(os.getcwd())

# 改回之前的路径 cur_path
os.chdir(cur_path)
print(os.getcwd())

image-20231118221843029

一定需要先记录当前路径,因为之后改过路径后就无法得到之前的路径位置了。(可能我比较菜,不会

stat

获得文件及目录基本信息。

print(os.stat(os.getcwd()))

image-20231118222431867

image-20231118222459737

walk

递归遍历目录。walk是个很常用的函数。

image-20231118222742925

os.walk(top, topdown=True, onerror=None, followlinks=False)

参数:

  • top:需要遍历目录的地址。
  • topdown:为真,则优先遍历top目录,否则优先遍历top的子目录(默认为开启)。
  • onerror:需要一个 callable 对象,当walk需要异常时,会调用。
  • followlinks:如果为真,则会遍历目录下的快捷方式(linux 下是 symbolic link)实际所指的目录(默认关闭)。

os.walk的返回值是一个生成器(generator),也就是说我们需要用循环不断的遍历它(不可以直接print),来获得所有的内容。

每次遍历的对象都是返回的是一个三元元组(root,dirs,files)

  • root:所指的是当前正在遍历的这个文件夹的本身的地址
  • dirs:是一个 list ,内容是该文件夹中所有的目录的名字(不包括子目录)
  • files:同样是 list , 内容是该文件夹中所有的文件(不包括子目录)
for root, dirs, files in os.walk(os.getcwd()):
    print("root: {}".format(root))
    for dir in dirs:
        print(os.path.join(root, dir))
    for file in files:
        print(os.path.join(root, file))

image-20231118224652962

系列教程 (showmeai.tech)

[Python中os.walk函数的用法(遍历文件夹下文件并获得路径)-CSDN博客](https://blog.csdn.net/qq_41562433/article/details/82995098?ops_request_misc=%7B%22request%5Fid%22%3A%22170031753116800211581878%22%2C%22scm%22%3A%2220140713.130102334…%22%7D&request_id=170031753116800211581878&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allbaidu_landing_v2~default-5-82995098-null-null.142v96pc_search_result_base3&utm_term=walk &spm=1018.2226.3001.4187)


http://www.kler.cn/a/132751.html

相关文章:

  • 华为欧拉系统使用U盘制作引导安装华为欧拉操作系统
  • vue2+3 —— Day5/6
  • Excel根据条件动态索引单元格范围
  • Ubuntu22.04LTS 部署前后端分离项目
  • Go 语言已立足主流,编程语言排行榜24 年 11 月
  • Prometheus面试内容整理-生态系统和集成
  • 计算机视觉基础(9)——相机标定与对极几何
  • Vue 路由props 多路由参数时使用
  • 电子商务、搜索引擎
  • Hafnium之内存共享
  • 流量1---------1
  • 新增文章分类
  • 「校园 Pie」 系列活动正式启航,首站走进南方科技大学!
  • 【AI视野·今日Robot 机器人论文速览 第六十三期】Thu, 26 Oct 2023
  • 【图论】最小生成树(python和cpp)
  • 【uniapp】Google Maps
  • js制作动态表单
  • PY32F002B从压缩包到实现串口printf输出
  • 解决:微软在登录时总是弹出需要家长或监护人同意才能使用该账户并且不断循环?
  • spire.pdf盖章(无水印免费无限制)
  • 【MySQL学习】C++外部调用
  • 【LeetCode刷题-双指针】--16.最接近的三数之和
  • 大师学SwiftUI第16章 - UIKit框架集成
  • 【Java 进阶篇】插上翅膀:JQuery 插件机制详解
  • docker中怎么启动容器
  • Nginx(六) Nginx location 匹配顺序及优先级深究(亲测有效)