Python零基础从小白打怪升级中~~~~~~~文件和文件夹的操作 (1)

第七节:文件和文件夹的操作

一、IO流(Stream)

通过“流”的形式允许计算机程序使用相同的方式来访问不同的输入/输出源。stream是从起源(source)到接收的(sink)的有序数据。我们这里把输入/输出源对比成“水桶”,那么流就是“管道”。

文件流: 就是源或者目标都是文件的流。

image.png

二、文件流的操作

  • 打开文件流
文件对象 = open(目标文件, 访问模式)
  • 操作

    文件对象.read()
    文件对象.readlines()
    文件对象.readline()
    
    文件对象.write()
    
    • seek() 指针操作
  • 关闭

文件对象.close()
  • 访问模式
模式描述
r以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。
rb以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。
r+打开一个文件用于读写。文件指针将会放在文件的开头。
rb+以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。
w打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
wb以二进制格式打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
w+打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
wb+以二进制格式打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
a打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
ab以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
a+打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。
ab+以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。

三、文件和文件夹的操作

在Python中文件和文件夹的操作要借助os模块里面的相关功能。OS模块是Python标准库中的一个用于访问操作系统功能的模块。

首先需要导入OS模块: import os

import os                           # 使用之前先导入
os.name                             # 查看当前操作系统的名字,"nt"表示Windows,"posix"表示Linux
os.sep                              # 获取当前系统平台路径分隔符
os.getcwd()                         # 获取当前工作目录
os.environ[key]/os.getenv(key)      # 获取当前环境变量值
os.listdir(path)                    # 列出指定目录path的所有文件和目录名
os.chdir(path)                      # 切换目录
os.mkdir(path)/os.makedirs(path)    # 创建单层目录/多层目录
os.rmdir(path)/os.removedirs(path)  # 删除单层空目录/多层空目录
os.remove(file_name)                # 删除文件
os.rename(old_name,new_name)        # 修改文件或目录名称
os.path.abspath(path)               # 获取指定相对路径的绝对路径
os.path.split(path)                 # 获取指定路径的目录名或文件名
os.path.isfile(path)                # 判断指定路径目标是否为文件
os.path.isdir(path)                 # 判断指定路径目标是否为目录
os.path.exists(path)                # 判断指定路径是否存在
os.path.splitext(path)              # 分离文件拓展名
os.path.join(path,*paths)           # 路径连接
os.path.base(path)                  # 提取文件名
os.path.dirname(path)               # 提取文件路径
os.path.getsize(path)               # 返回文件大小

案例:实现一个文件夹中(目录中可能还有子目录),拷贝所有的py文件。到另外一个指定的目录中。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Llama 3下月正式发布,继续开源!

4月10日,Techcrunch消息,Meta在本周伦敦举办的一场活动中确定,下个月将正式发布Llama 3并且继续开源。 Meta全球事务总裁Nick Clegg表示,我们希望在下个月,甚至更短的时间内,正式推出新一代基础模型Llama …

[C语言][数据结构][链表] 单链表的从零实现!

目录 零.必备知识 1.一级指针 && 二级指针 2. 节点的成员列表 a.数据 b.指向下一个节点的指针. 3. 动态内存空间的开辟 (malloc-calloc-realloc) 一.单链表的实现与销毁 1.1 节点的定义 1.2 单链表的尾插 1.3 单链表的头插 1.4 单链表的尾删 1.5 单链表的头删 1…

二维数组中的查找

😀前言 在解决问题时,我们经常会遇到需要在二维数组中查找特定元素的情况。然而,如果直接使用暴力搜索,即遍历整个数组寻找目标元素,可能会导致时间复杂度较高,效率不高。然而,对于给定的二维数…

将Composite Collider 2D组件移除可解决Unity穿墙问题

将Composite Collider 2D组件移除可解决Unity穿墙问题

HTTP/UDP/TCP/IP网络协议

文章目录 计算机网络基础HTTP相关问题 UDPTCP连接管理(三次握手/四次挥手)TCP可靠传输(确认答应)超时重传滑动窗口流量控制拥塞控制延时应答捎带应答粘包问题其他 IP数据链路层MUT 网卡接收数据流程相关问题TCP会粘包、UDP永远不会粘包 学习博客 计算机网络基础 OSI模型定义了…

vue3 路由允许通过跳转访问,不允许通过空白页访问,同时通过路由跳转来的刷新不会丢失

背景说明 需要是这样的: 假设这个路由是/aa 它可以通过其它路由跳转进入 或 访问路由标签进入。如:通过路由/bb跳转进入到路由/aa:在路由/bb中写如下代码router.push({ path: /aa })不允许通过空白页进入。如 由路由/bb跳转到路由/aa后&am…

Oracle数据库imp文件导入失败提示:“不是有效的导出文件, 标头验证失败”解决方法

导入数据库时,直接提示不是有效的导出文件,标头验证失败 原因:这是因为导出的imp文件和你当前导入的数据库版本不一致造成的,例如:导出文件版本号12.0.1 导入数据库的版本号11.0.2,会报这个错误。 解决办法…

【Java EE】获取Cookie和Session

文章目录 🎍Cookie简介🍀理解Session🌳Cookie 和 Session 的区别🌲获取Cookie🌸传统获取Cookie🌸简洁获取Cookie 🌴获取Session🌸Session存储🌸Session读取🌻…

tsc --init 报错

运行 tsc --init 报错, 全局安装 ts 也不行 通过 npx tsc --init 就可以解决

创建大量栅格文件并分别写入像元数据:C++ GDAL代码实现

本文介绍基于C语言GDAL库,批量创建大量栅格遥感影像文件,并将数据批量写入其中的方法。 首先,我们来明确一下本文所需实现的需求。已知我们对大量遥感影像进行了批量读取与数据处理操作——具体过程可以参考文章C GDAL提取多时相遥感影像中像…

python开发poc,fofa爬虫批量化扫洞

学习使用python做到批量化的漏洞脚本 1.通过fofa搜索结果来采集脚本 2.批量化扫描漏洞 ---glassfish存在任意文件读取在默认48484端口,漏洞验证的poc为: "glassfish" && port"4848" && country"CN" http://loca…

渗透学习第一天:DR4G0N B4LL靶场复现

0x00 环境搭建 攻击机为kali Linux,IP为192.168.71.129 靶机IP地址目前不知道,但是是和kali同网段的 0x01 信息收集 由于不知道目标的IP地址,这里我采用了arp scan对本机的整个网段进行扫描 发现目标IP为192.168.71.130。对目标IP进行端…

新品攻略—小功率、小体积、高效率!LED驱动模块RSC6218A

瑞森半导体(REASUNOS)推出应用在5W-18W LED电源上的LED驱动模块RSC6218A。 LED驱动模块RSC6218A是一款LLC 谐振拓扑功率模块,带有半桥驱动的控制电路和功率转化器件,适用于 LED 恒流控制线路,电路工作频率可达200KHz。…

MATLAB绘采用低通滤波处理加噪方波信号

MATLAB绘采用低通滤波处理加噪方波信号 clc;close all;clear all;warning off;%清除变量 rand(seed, 100); randn(seed, 100); format long g;% MATLAB代码:绘制加噪方波并采用低通滤波后绘制图像 % 参数设置 Fs 1000; % 采样频率 T 1/Fs; …

“更大的焦虑,更大的想象力”:音视频厂商如何闯入AI时代?

从GPT3.5到GPT4.0,从Runway、Pika到Sora,当大模型的价值链不断升级,那些暂未爬到顶端的企业,还剩下多少‘生存空间’? 于音视频厂商而言,企业要解决的难题是,如何将技术与用户连接在一起。让大…

PPE-个人防护装备如何定义?为什么说PPE是劳动者的护身神器?

个人防护用品定义 PPE,即个人防护装备、个人防护用具或劳保用品,是劳动场所中不可或缺的重要组成部分。它们扮演着保护工人免受各种危害的关键角色。从安全帽到反光衣,再到防护手套和安全鞋,PPE覆盖了各个方面,为工人…

线性变换在人工智能领域的深度实践与应用探索

线性变换,作为数学中的一种基本工具,在人工智能领域中发挥着举足轻重的作用。其强大的表示能力和灵活的运算特性使得线性变换成为机器学习、深度学习等多个子领域的核心组成部分。本文将详细探讨线性变换在人工智能领域中的实践应用,旨在揭示…

Qt plugin 开发UI界面插件

目录 1.创建接口 2.创建插件 3.创建插件界面 4.插件实现 5.创建应用工程 6.应用插件 1.创建接口 打开QtCreater,点击左上角“文件”->新建文件或项目,在弹窗中选择C/CHeader File。 输入文件名,选好路径(可自行设置名称…

HarmonyOS 开发-二级联动

介绍 本示例主要介绍了List组件实现二级联动(Cascading List)的场景。 该场景多用于短视频中拍摄风格的选择、照片编辑时的场景的选择。 效果图预览 使用说明: 滑动二级列表侧控件,一级列表随之滚动。点击一级列表,…

【数据交换格式】网络socket编程温度采集智能存储与上报项目技术------JSON、TLV

作者简介: 一个平凡而乐于分享的小比特,中南民族大学通信工程专业研究生在读,研究方向无线联邦学习 擅长领域:驱动开发,嵌入式软件开发,BSP开发 作者主页:一个平凡而乐于分享的小比特的个人主页…