Python从0到100(二十):文件读写和文件操作

news2024/10/8 15:00:58

在这里插入图片描述

一、文件的打开和关闭

有了文件系统可以非常方便的通过文件来读写数据;在Python中要实现文件操作是非常简单的。我们可以使用Python内置的open函数来打开文件,在使用open函数时,我们可以通过函数的参数指定文件名操作模式字符编码等信息,接下来就可以对文件进行读写操作了。这里所说的操作模式是指要打开什么样的文件(字符文件或二进制文件)以及做什么样的操作(读、写或追加),具体如下表所示。

操作模式具体含义
'r'读取 (默认)
'w'写入(会先截断之前的内容)
'x'写入,如果文件已经存在会产生异常
'a'追加,将内容写入到已有文件的末尾
'b'二进制模式
't'文本模式(默认)
'+'更新(既可以读又可以写)

1.文件的打开

使用Word编写一份简历的流程:

  • 打开新建一个Word文件
  • 写入个人简历信息
  • 保存文件
  • 关闭Word软件在这里插入图片描述

操作文件的整体过程和word写简历的过程类似:

  • 打开或新建立一个文件
  • 读/写数据
  • 关闭文件

在python中,使用 open方法 打开文件:

open(文件名,访问模式)
  1. “文件名”必须要填写
  2. “访问模式”是可选的

注意
如果使用open函数打开文件时,如果没有注明访问模式,则必须保证文件是存在的,否则会报异常。

Traceback (most recent call last):
  File "<input>", line 1, in <module>
FileNotFoundError: [Errno 2] No such file or directory: 'test.txt'

2.文件的模式

基本:

  • r:默认模式,以只读方式打开文件
  • w: 打开一个文件只用于写入
  • a: 打开一个文件用于追加
  • rb: 以二进制格式打开一个文件用于只读
  • wb: 以二进制格式打开一个文件只用于写入
  • ab: 以二进制格式打开一个文件用于追加

复杂:

  • r+: 打开一个文件用于读写,文件指针会放在文件开头
  • w+: 打开一个文件用于读写,如果已经存在则会覆盖
  • a+: 打开一个文件用于读写,如果已经存在,则会放在末尾
  • rb+:以二进制格式打开一个文件用于读写
  • wb+: 以二进制格式打开一个文件用于读写。如存在则覆盖
  • ab+: 以二进制格式打开一个文件用于追加

3.文件的关闭

凡是打开的文件,切记要使用close方法关闭文件。

# 新建一个文件,文件名为:test.txt
f = open(itheima.txt', 'w')
# 关闭这个文件
f.close()

二、文件的读写

1.写文件

向文件写数据,需要使用 write() 方法来完成,在操作某个文件时,每调用一次write方法,写入的数据就会追加到文件末尾。

# 一万次悲伤,依然会有Dream,我一直在最温暖的地方等你!
# @Time    : 2022/1/23 13:00
# @Author  : 是Dream呀!
# @File    : 文件写入.py
f = open('xyp.txt', 'w')
f.write('hello qiaoqiao, i am here!')
f.close()

如果没有此文件的话,会重新生成一个名为xyp.txt的文件:
在这里插入图片描述
打开此txt文件会有,我们写入的内容:
在这里插入图片描述

2.读文件

方式1:使用read方法读取文件
read(int)函数, 读取文件内容。如果指定读取长度,会按照长度去读取,不指定默认读取所有数据

# 一万次悲伤,依然会有Dream,我一直在最温暖的地方等你!
# @Time    : 2022/1/23 13:05
# @Author  : 是Dream呀!
# @File    : 文件读.py
f = open('xyp.txt', 'r')
content = f.read(12)
print(content)
content = f.read()
print(content)
f.close()
# hello qiaoqi
# ao, i am here!

前面读过的,后面就不会再读了。
我们将原文件,再写入一行:
在这里插入图片描述

方式2:使用readlines方法读取文件
readlines()是按行输出列表,会把每一行的数据作为一个元素放在列表中返回,读取所有行的数据

f= open('xyp.txt', 'r')
content = f.readlines()
print(content)

在这里插入图片描述
----去掉括号和换行的方法----

f= open('xyp.txt', 'r')
content = f.readlines()
print(content)
for i in content:
    i = i.strip('\n')
    print(i)

在这里插入图片描述

方式3:使用readline方法一行一行读数据
readline()是读取一行,遇到换行结束

f = open('xyp.txt', 'r')
content = f.readline()
print("1:%s"%content)
content = f.readline()
print("2:%s"%content)
f.close()

3.文件的定位读写

方式1:使用tell方法来获取文件当前的读写位置

f = open("xyp.txt", "r")
str = f.read(4)
print('读取的数据是 : ', str)
position = f.tell()
print("当前文件位置 : ", position)
# 读取的数据是 :  hell
# 当前文件位置 :  4

tell()方法返回文件的当前位置,即文件指针当前位置
方式2:使用seek方法来移动文件读取指针到指定位置
seek(offset, from)方法包含两个参数:

  • offset:表示偏移量,也就是代表需要移动偏移的字节数
  • from:表示方向,可以指定从哪个位置开始偏移
  • 0:表示文件开头(默认值)
  • 1:表示当前位置
  • 2:表示文件末尾

三、文件的重命名和删除

1.文件的重命名

os模块中的rename()方法可以完成文件的重命名。
格式如下:

os.rename(需要修改的文件名, 新的文件名)

wenjiand读写

2.文件的删除

os模块中的remove()方法可以完成文件的删除操作。
格式如下:

os.remove(待删除的文件名)

在这里插入图片描述

四、文件的相关操作

1.创建文件夹

os模块的mkdir方法用来创建文件夹,示例如下:

import os
os.mkdir("张三")

在这里插入图片描述

2.获取当前目录

os模块的getcwd方法用来获取当前的目录,示例如下:

import os
os.getcwd()

在这里插入图片描述

3.改变默认目录

os模块的chdir方法用来改变默认目录,示例如下:

import os
path = "Python文件操作"
# 查看当前工作目录  
retval = os.getcwd()
print("当前工作目录为 %s" % retval)
# 修改当前工作目录  
os.chdir(path)
# 查看修改后的工作目录  
retval = os.getcwd()
print("目录修改成功 %s" % retval)

在这里插入图片描述

4. 获取目录列表

os模块的listdir方法用于获取目录列表,示例如下:

import os
os.listdir (./)

在这里插入图片描述
在这里插入图片描述

5. 删除文件夹

os模块的rmdir方法用于删除文件夹,示例如下:

import os
os.rmdir ('张三')

在这里插入图片描述

好书推荐

数据预处理是数据可视化、数据分析和机器学习的第一步,它将为分析和预测模型准备数据以帮助分析师获得最佳见解。分析师在执行数据分析、数据可视化和机器学习项目时,大约90%的时间都花在数据预处理上。
本书将从多个角度为读者提供最佳的数据预处理技术。读者将了解数据预处理的不同技术和分析过程(包括数据收集、数据清洗、数据集成、数据归约和数据转换等),并掌握如何使用开源Python编程环境来实现它们。
在这里插入图片描述

京东: 购买链接传送门

《Python数据预处理》详细阐述了与Python数据预处理相关的基本解决方案,主要包括NumPy和Pandas简介、Matplotlib简介、数据、数据库、数据可视化、预测、分类、聚类分析、数据清洗、数据融合与数据集成、数据归约、数据转换等内容。此外,本书还提供了相应的示例、代码,以帮助读者进一步理解相关方案的实现过程。

本书适合作为高等院校计算机及相关专业的教材和教学参考书,也可作为相关开发人员的自学用书和参考手册。
在这里插入图片描述

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

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

相关文章

websevere服务器从零搭建到上线(四)|muduo网络库的基本原理和使用

文章目录 muduo源码编译安装muduo框架讲解muduo库编写服务器代码示例代码解析用户连接的创建和断开回调函数用户读写事件回调 使用vscode编译程序配置c_cpp_properties.json配置tasks.json配置launch.json编译 总结 muduo源码编译安装 muduo依赖Boost库&#xff0c;所以我们应…

智能BI产品设计

BI概念 目录 BI概念 一&#xff1a;与BI相关的几个重要概念 二&#xff1a;数据仓库 VS 数据库 BI架构 一&#xff1a;数据分析通用流程 二&#xff1a;BI平台基本架构 可视化图形 一&#xff1a;如何选择可视化图形 二&#xff1a;数据展示形式 三&#xff1a;数据…

【driver3】proc文件系统,内存分配,数据类型/移植/对齐,内核中断,通过IO内存访问外设,PCI

文章目录 1.创建proc文件系统接口&#xff1a;之前调试内核时都是通过prink打印内核信息&#xff0c;通过dmesg查看输出的信息。新调试方法&#xff1a;利用proc文件系统在pro文件夹下创建接口&#xff0c;读写这个接口就可实现对内核的调试2.内核内存分配函数&#xff1a;top&…

spring ioc 容器加载过程 refresh() 方法详解

IOC 加载过程 从 new ClassPathXmlApplicationContext开始 ApplicationContext context new ClassPathXmlApplicationContext("classpath:application.xml");ClassPathXmlApplicationContext类构造方法 public ClassPathXmlApplicationContext(String[] configLo…

自动驾驶融合定位:IMU内参模型及标定

自动驾驶融合定位&#xff1a;IMU内参模型及标定 一、 概述 标定的本质是参数辨识。首先明确哪些参数可辨识&#xff0c;其次弄清怎样辨识。 参数包括陀螺仪和加速度计各自的零偏、标度因数、安装误差。 辨识就比较丰富了&#xff0c;如果让各位先不局限于标定任务&#xf…

数据分析——业务指标分析

业务指标分析 前言一、业务指标分析的定义二、业务问题构建问题构建的要求 三、业务问题的识别在识别问题的阶段对于企业内部收益者的补充 四、竞争者分析竞争者分析的内容竞争者分析目的案例 五、市场机会识别好的市场机会必须满足的条件市场机会案例 六、风险控制数据分析师常…

【Git实战】如何将本地仓库推送至Github(windows版)?

最近使用Go语言开发项目&#xff0c;想寻找位操作相关的工具包。找了一圈没有合适的&#xff0c;因此自己写了一个。又想将其推送到Github上&#xff0c;中间逢山开路&#xff0c;遇水搭桥&#xff0c;终于成功将本地Git仓库和Github进行了关联。现将我的方法公之于众&#xff…

网页html版面分析-- BeauifulSoup(python 文档解析提取)

介绍 BeauifulSoup 是一个可以从HTML或XML 文件中提取数据的python库&#xff1b;它能通过转换器实现惯用的文档导航、查找、修改文档的方式。 BeauifulSoup是一个基于re开发的解析库&#xff0c;可以提供一些强大的解析功能&#xff1b;使用BeauifulSoup 能够提高提取数据的效…

国产最强多模态大模型Step Fun-1V,究竟有多好用?

前言&#xff1a; 2023年是大模型的元年&#xff0c;随着ChatGPT的爆火&#xff0c;将大模型带入了公众的视野 &#xff0c;国内也随之掀起了百模大战的浪潮。在这股浪潮的推动下&#xff0c;诸多科技公司&#xff0c;乃至大厂都争相推出自己的大模型产品&#xff0c;希望能够…

华为 二层交换机与防火墙连通上网实验

防火墙是一种网络安全设备&#xff0c;用于监控和控制网络流量。它可以帮助防止未经授权的访问&#xff0c;保护网络免受攻击和恶意软件感染。防火墙可以根据预定义的规则过滤流量&#xff0c;例如允许或阻止特定IP地址或端口的流量。它也可以检测和阻止恶意软件、病毒和其他威…

element-plus upload查看图片后不展示press delete to remove?

直接上全局样式就行&#xff1a; :deep(.el-upload-list__item .el-icon--close-tip) {display: none !important; }

灌溉机器人 状压dp

灌溉机器人 题目描述 农田灌溉是一项十分费体力的农活&#xff0c;特别是大型的农田。小明想为农民伯伯们减轻农作负担&#xff0c;最近在研究一款高科技——灌溉机器人。它可以在远程电脑控制下&#xff0c;给农田里的作物进行灌溉。 现在有一片 N 行 M 列的农田。农田的土…

【数据结构】有关环形链表题目的总结

文章目录 引入 - 快慢指针思考 - 快慢指针行走步数进阶 - 寻找环形链表的头 引入 - 快慢指针 141-环形链表 - Leetcode 关于这道题&#xff0c;大家可以利用快慢指针&#xff0c;一个每次走两步&#xff0c;一个每次走一步&#xff0c;只要他们有一次相撞了就代表说这是一个链…

【吃透Java手写】SpringBoot-简易版-源码解析

【吃透Java手写】SpringBoot-简易版-源码解析 1 SpringbootDemo2 准备工作2.1 Springboot-my2.1.1 依赖2.1.2 SpringBootApplication2.1.3 SJBSpringApplication2.1.3.1 run方法 2.2 Springboot-user2.2.1 依赖2.2.2 UserController2.2.3 UserApplication 2.3 分析run方法的逻辑…

13 【PS作图】人物绘画理论-脸型

三庭五眼 三庭&#xff1a;脸的长度比例 &#xff08;1&#xff09;发际线到眉毛 &#xff08;2&#xff09;眉毛到鼻底 &#xff08;3&#xff09;鼻底到下巴 三个部分大致为三等分 五眼&#xff1a;脸的宽度比例 以眼睛长度为单位&#xff0c;把脸的宽度分成五等分&#x…

为什么很多人不推荐你用JWT?

为什么很多人不推荐你用JWT? 如果你经常看一些网上的带你做项目的教程&#xff0c;你就会发现 有很多的项目都用到了JWT。那么他到底安全吗&#xff1f;为什么那么多人不推荐你去使用。这个文章将会从全方面的带你了解JWT 以及他的优缺点。 什么是JWT? 这个是他的官网JSON…

搜索算法系列之四(斐波那契)

以下算法被验证过&#xff0c;如有什么问题或有补充的欢迎留言。 前言 斐波那契数列&#xff0c;又称黄金分割数列&#xff0c;是由意大利数学家&#xff08;Leonardo Fibonacci&#xff09;在1202年提出的。这个数列的递推关系是F(0)1&#xff0c;F(1)1&#xff0c;F(n)F(n-…

微搭低代码入门05文件的上传和下载

目录 1 创建数据源2 创建应用3 创建页面4 设置导航功能5 文件上传6 文件下载总结 小程序中&#xff0c;我们通常会有文件的上传和下载的需&#xff0c;在微搭中&#xff0c;文件是存放在云存储中&#xff0c;每一个文件都会有一个唯一的fileid&#xff0c;我们本篇就介绍如何通…

强化学习玩flappy_bird

强化学习玩flappy_bird&#xff08;代码解析&#xff09; 游戏地址&#xff1a;https://flappybird.io/ 该游戏的规则是&#xff1a; 点击屏幕则小鸟立即获得向上速度。 不点击屏幕则小鸟受重力加速度影响逐渐掉落。 小鸟碰到地面会死亡&#xff0c;碰到水管会死亡。&#…

vscode连接服务器的docker步骤

进入容器之后&#xff0c;操作方式与本地windows系统操作逻辑一样&#xff1b;容器内部结构都能任意查看和使用&#xff0c;创建文件及编写python脚本都可以直接使用vs code编辑器进行编辑和调试&#xff0c;从而避免使用命令行及vim编辑文件&#xff0c;非常直观且方便~