Python3 OS模块中的文件/目录方法说明十七

一. 简介

前面文章简单学习了 Python3 中 OS模块中的文件/目录的部分函数。

本文继续来学习 OS 模块中文件、目录的操作方法:os.walk() 方法、os.write()方法

二. Python3 OS模块中的文件/目录方法

1. os.walk() 方法

os.walk() 方法用于生成目录树中的文件名,通过遍历目录及其子目录递归地生成文件名,os.walk() 方法是一个生成器,每次产生一个三元组 (dirpath, dirnames, filenames)。该方法是一个简单易用的文件、目录遍历器,可以帮助我们高效的处理文件、目录方面的事情。

walk()方法语法格式如下:

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

参数:

  • top: 需要遍历的根目录路径。
  • topdown: 可选参数,默认为 True。如果设置为 True,则先于其子目录返回目录信息;如果设置为 False,则在处理完所有子目录后才返回目录信息。
  • onerror: 可选参数,是一个接收异常作为唯一参数的函数。当 os.walk() 遇到问题(例如权限错误)时会调用此函数。默认情况下,遇到错误时会忽略它们。
  • followlinks: 可选参数,默认为 False。如果设置为 Trueos.walk() 将跟随符号链接指向的目录。注意,这可能会导致无限循环,如果存在循环链接的话。

返回值:

每次产生一个三元组 (dirpath, dirnames, filenames):

    dirpath: 字符串形式的路径,表示当前遍历的目录。
    dirnames: 保存当前目录下所有子目录名称(不含路径)的列表。
    filenames: 保存当前目录下所有非目录文件名称(不含路径)的列表。

示例如下:

#!/usr/bin/python3import osfor str_cur_path, dirs, files in os.walk(".", topdown=True):for file_name in files:#拼接路径print(os.path.join(str_cur_path, file_name))for dir_name in dirs:print(os.path.join(str_cur_path, dir_name))

运行后结果如下:

2.  os.write() 方法

os.write() 方法用于写入字符串到文件中,返回实际写入的字符串长度。通过文件描述符进行操作。文件描述符是一个由操作系统提供的抽象,代表了打开的文件、管道或其他I/O资源。

write()方法语法格式如下:

os.write(fd, data)
参数:fd -- 文件描述符。str -- 写入的字符串。
返回值: 返回实际写入的字符串长度。

示例如下:

#!/usr/bin/python3import os,syspath = "./test.txt"
info = "wonderful"fd = os.open(path, os.O_RDWR|os.O_CREAT)
#向文件中写入数据
data_len = os.write(fd, bytes(info, 'utf-8'))
print("write data_len:", data_len)
os.close(fd)
#读取文件的内容
r_fd = os.open(path, os.O_RDONLY)
read_data = os.read(r_fd, 60)
print(f"read bytes: {read_data.decode()}")
os.close(fd)

运行结果如下:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/67722.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

css三角图标

案例三角&#xff1a; <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title><s…

线性数据结构:单向链表

放弃眼高手低&#xff0c;你真正投入学习&#xff0c;会因为找到一个新方法产生成就感&#xff0c;学习不仅是片面的记单词、学高数......只要是提升自己的过程&#xff0c;探索到了未知&#xff0c;就是学习。 目录 一.链表的理解 二.链表的分类&#xff08;重点理解&#xf…

基于PyQt5打造的实用工具——PDF文件加图片水印,可调大小位置,可批量处理!

01 项目简介 &#xff08;1&#xff09;项目背景 随着PDF文件在信息交流中的广泛应用&#xff0c;用户对图片水印的添加提出了更高要求&#xff0c;既要美观&#xff0c;又需高效处理批量文件。现有工具难以实现精确调整和快速批量操作&#xff0c;操作繁琐且效果不理想。本项…

MCU内部ADC模块误差如何校准

本文章是笔者整理的备忘笔记。希望在帮助自己温习避免遗忘的同时&#xff0c;也能帮助其他需要参考的朋友。如有谬误&#xff0c;欢迎大家进行指正。 一、ADC误差校准引言 MCU 片内 ADC 模块的误差总包括了 5 个静态参数 (静态失调&#xff0c;增益误差&#xff0c;微分非线性…

“新月智能武器系统”CIWS,开启智能武器的新纪元

新月人物传记&#xff1a;人物传记之新月篇-CSDN博客 相关文章链接&#xff1a;星际战争模拟系统&#xff1a;新月的编程之道-CSDN博客 新月智能护甲系统CMIA--未来战场的守护者-CSDN博客 “新月之智”智能战术头盔系统&#xff08;CITHS&#xff09;-CSDN博客 目录 智能武…

实验六 项目二 简易信号发生器的设计与实现 (HEU)

声明&#xff1a;代码部分使用了AI工具 实验六 综合考核 Quartus 18.0 FPGA 5CSXFC6D6F31C6N 1. 实验项目 要求利用硬件描述语言Verilog&#xff08;或VHDL&#xff09;、图形描述方式、IP核&#xff0c;结合数字系统设计方法&#xff0c;在Quartus开发环境下&#xff…

SCRM系统如何提升客户管理及业务协同的效率与价值

内容概要 在当今商业环境中&#xff0c;SCRM系统&#xff08;社交客户关系管理系统&#xff09;正逐渐受到越来越多企业的关注和重视。随着科技的发展&#xff0c;传统的客户管理方式已经无法满足快速变化的市场需求&#xff0c;SCRM系统通过整合客户数据和社交网络信息&#…

[免费]微信小程序智能商城系统(uniapp+Springboot后端+vue管理端)【论文+源码+SQL脚本】

大家好&#xff0c;我是java1234_小锋老师&#xff0c;看到一个不错的微信小程序智能商城系统(uniappSpringboot后端vue管理端)&#xff0c;分享下哈。 项目视频演示 【免费】微信小程序智能商城系统(uniappSpringboot后端vue管理端) Java毕业设计_哔哩哔哩_bilibili 项目介绍…

PID算法的数学实现和参数确定方法

目录 概述 1 算法描述 1.1 PID算法模型 1.2 PID离散化的图形描述 1.3 PID算法的特点 2 离散化的PID算法 2.1 位置式PID算法 2.2 增量式PID算法 2.3 位置式PID与增量式PID比较 3 控制器参数整定 3.1 PID参数确定方法 3.1.1 凑试法 3.1.2 临界比例法 3.1.3 经验法…

【论文阅读】RAG-Reward: Optimizing RAG with Reward Modeling and RLHF

研究背景 研究问题&#xff1a;这篇文章要解决的问题是如何优化检索增强生成&#xff08;RAG&#xff09;系统&#xff0c;特别是通过奖励建模和人类反馈强化学习&#xff08;RLHF&#xff09;来提高大型语言模型&#xff08;LLMs&#xff09;在RAG任务中的效果。研究难点&…

【数据结构】(3)包装类和泛型

一、包装类 1、什么是包装类 将基础类型包装成的类就是包装类。由于基础类型不是继承 Object 类的类&#xff0c;所以在泛型不能直接支持基础类型&#xff0c;为了解决这个问题&#xff0c;就需要把基础类型转换为对应的包装类。 基础类型对应的包装类 基础类型包装类byteByte…

C++11线程

C11提供了线程库&#xff0c;下面我们来看一下如何使用。 线程的创建 头文件 要创建一个线程需要包一个线程头文件:#include <thread> 我们先来看看thread支持的构造方式。 支持默认构造&#xff0c;直接使用thread创建一个空的线程对象。 也支持带参的构造&#x…

Golang 并发机制-3:通道(channels)机制详解

并发编程是一种创建性能优化且响应迅速的软件的强大方法。Golang&#xff08;也称为 Go&#xff09;通过通道&#xff08;channels&#xff09;这一特性&#xff0c;能够可靠且优雅地实现并发通信。本文将揭示通道的概念&#xff0c;解释其在并发编程中的作用&#xff0c;并提供…

笔记:使用ST-LINK烧录STM32程序怎么样最方便?

一般板子在插件上&#xff0c; 8脚 3.3V;9脚 CLK;10脚 DIO;4脚GND ST_Link 19脚 3.3V;9脚 CLK;7脚 DIO;20脚 GND 烧录软件&#xff1a;ST-LINK Utility&#xff0c;Keil_5; ST_Link 接口针脚定义&#xff1a; 按定义连接ST_Link与电路板&#xff1b; 打开STM32 ST-LINK Uti…

网络测试工具

工具介绍&#xff1a; 这是一个功能完整的网络测速工具&#xff0c;可以测试网络的下载速度、上传速度和延迟。 功能特点&#xff1a; 1. 速度测试 - 下载速度测试 - 上传速度测试 - Ping延迟测试 - 自动选择最佳服务器 2. 实时显示 - 进度条显示测试进度 - 实时显示测试状…

java每日精进1.31(SpringSecurity)

在所有的开发的系统中&#xff0c;都必须做认证(authentication)和授权(authorization)&#xff0c;以保证系统的安全性。 一、基础使用 1.依赖 <dependencies><!-- 实现对 Spring MVC 的自动化配置 --><dependency><groupId>org.springframework.bo…

17.2 图形绘制8

版权声明&#xff1a;本文为博主原创文章&#xff0c;转载请在显著位置标明本文出处以及作者网名&#xff0c;未经作者允许不得用于商业目的。 17.2.10 重绘 先看以下例子&#xff1a; 【例 17.28】【项目&#xff1a;code17-028】绘制填充矩形。 private void button1_Clic…

自定义数据集 使用pytorch框架实现逻辑回归并保存模型,然后保存模型后再加载模型进行预测,对预测结果计算精确度和召回率及F1分数

import numpy as np import torch import torch.nn as nn import torch.optim as optim from sklearn.metrics import precision_score, recall_score, f1_score# 数据准备 class1_points np.array([[1.9, 1.2],[1.5, 2.1],[1.9, 0.5],[1.5, 0.9],[0.9, 1.2],[1.1, 1.7],[1.4,…

neo4j入门

文章目录 neo4j版本说明部署安装Mac部署docker部署 neo4j web工具使用数据结构图数据库VS关系数据库 neo4j neo4j官网Neo4j是用ava实现的开源NoSQL图数据库。Neo4作为图数据库中的代表产品&#xff0c;已经在众多的行业项目中进行了应用&#xff0c;如&#xff1a;网络管理&am…

Java基础——分层解耦——IOC和DI入门

目录 三层架构 Controller Service Dao ​编辑 调用过程 面向接口编程 分层解耦 耦合 内聚 软件设计原则 控制反转 依赖注入 Bean对象 如何将类产生的对象交给IOC容器管理&#xff1f; 容器怎样才能提供依赖的bean对象呢&#xff1f; 三层架构 Controller 控制…