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

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

在这里插入图片描述

一、文件的打开和关闭

有了文件系统可以非常方便的通过文件来读写数据;在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简介、数据、数据库、数据可视化、预测、分类、聚类分析、数据清洗、数据融合与数据集成、数据归约、数据转换等内容。此外,本书还提供了相应的示例、代码,以帮助读者进一步理解相关方案的实现过程。

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

相关文章:

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

一、文件的打开和关闭 有了文件系统可以非常方便的通过文件来读写数据&#xff1b;在Python中要实现文件操作是非常简单的。我们可以使用Python内置的open函数来打开文件&#xff0c;在使用open函数时&#xff0c;我们可以通过函数的参数指定文件名、操作模式和字符编码等信息…...

AI+客服行业落地应用

一、客服行业变迁 1.传统客服时代 &#xff08;1&#xff09;客服工作重复性高&#xff0c;技术含量低 &#xff08;2&#xff09;呼出效率低&#xff0c;客服水平参差不齐 &#xff08;3&#xff09;管理难度高&#xff0c;情绪不稳定 &#xff08;4&#xff09;服务质量…...

40 生产者消费者模型

生产者消费者模型 概念 为何要使用生产者消费者模型&#xff0c;这个是用过一个容器解决生产者和消费的强耦合问题。生产者和消费者之间不需要通讯&#xff0c;通过阻塞队列通讯&#xff0c;所以生产者生产完数据之后不用等待消费者处理&#xff0c;直接扔给阻塞队列&#xf…...

QT5之windowswidget_菜单栏+工具栏_核心控件_浮动窗口_模态对话框_标准对话框/文本对话框

菜单栏工具栏 新建工程基类是QMainWindow 1、 2、 3、 点.pro文件&#xff0c;添加配置 因为之后用到lambda&#xff1b; 在.pro文件添加配置c11 CONFIG c11 #不能加分号 添加头文件 #include <QMenuBar>//菜单栏的头文件 主窗口代码mainwindow.cpp文件 #include &q…...

Satellite, Aerial, and Underwater Communication Track(WCSP2023)

1.Dispersion Curve Extraction and Source Localization for Single Hydrophone by Combining Image Skeleton Extraction with Advanced Time-Frequency Analysis(图像骨架提取与先进时频分析相结合的单水听器色散曲线提取和源定位) 摘要&#xff1a;时频分析&#xff08;TF…...

AtCoder Regular Contest 176(ARC176)A、B

题目&#xff1a;AtCoder Regular Contest 176 - tasks 官方题解&#xff1a;AtCoder Regular Contest 176 - editorial 参考&#xff1a;atcoder regular 176 (ARC176) A、B题解 A - 01 Matrix Again 题意 给一个nn的方格&#xff0c;给出m个坐标(x,y)m&#xff0c;在方格中…...

VTK —— 二、教程六 - 为模型加入3D微件(按下i键隐藏或显示)(附完整源码)

代码效果 本代码编译运行均在如下链接文章生成的库执行成功&#xff0c;若无VTK库则请先参考如下链接编译vtk源码&#xff1a; VTK —— 一、Windows10下编译VTK源码&#xff0c;并用Vs2017代码测试&#xff08;附编译流程、附编译好的库、vtk测试源码&#xff09; 教程描述 本…...

一种基于图搜索的全局/局部路径避障策略

系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 TODO:写完再整理 文章目录 系列文章目录前言一种基于图搜索的全局/局部路径避障策略前言 认知有限,望大家多多包涵,有什么问题也希望能够与大家多交流,共同成长! 本文先对一种基于图搜索…...

LT2611UX四端口 LVDS转 HDMI2.0,带音频

描述LT2611UX 是一款面向机顶盒、DVD 应用的高性能 LVDS 至 HDMI2.0 转换器。LVDS输入可配置为单端口、双端口或四端口&#xff0c;具有1个高速时钟通道和3~4个高速数据通道&#xff0c;工作速率最高为1.2Gbps/通道&#xff0c;可支持高达19.2Gbps的总带宽。LT2611UX 支持灵活的…...

TypeError报错处理

哈喽&#xff0c;大家好&#xff0c;我是木头左&#xff01; 一、Python中的TypeError简介 这个错误通常表示在方法调用时&#xff0c;参数类型不正确&#xff0c;或者在对字符串进行格式化操作时&#xff0c;提供的变量与预期不符。 二、错误的源头&#xff1a;字符串格式化…...

PHP的数组练习实验

实 验 目 的 掌握索引和关联数组&#xff0c;以及下标和元素概念&#xff1b; 掌握数组创建、初始化&#xff0c;以及元素添加、删除、修改操作&#xff1b; 掌握foreach作用、语法、执行过程和使用&#xff1b; 能应用数组输出表格和数据。 任务1&#xff1a;使用一维索引数…...

P3743 小鸟的设备

原题链接&#xff1a;小鸟的设备 - 洛谷 目录 1. 题目描述 2. 思路分析 3. 代码实现 1. 题目描述 2. 思路分析 浮点数二分答案。 首先特判&#xff0c;如果接通设备每秒生成的能量p大于等于所有设备每秒消耗的能量&#xff08;a[1]a[2]..a[n]&#xff09;直接输出-1&…...

数字旅游以科技创新为动力:推动旅游服务的智能化、网络化和个性化发展,满足游客日益增长的多元化、个性化需求

目录 一、引言 二、科技创新推动旅游服务智能化发展 1、智能化技术的引入与应用 2、智能化提升旅游服务效率与质量 三、科技创新推动旅游服务网络化发展 1、网络化平台的构建与运营 2、网络化拓宽旅游服务渠道与范围 四、科技创新推动旅游服务个性化发展 1、个性化需求…...

64位的IP地址设想

现有的IP地址 IPv4有32位&#xff0c;不够用了。 IPv6有128位&#xff0c;相当多。 实际上&#xff0c;23385亿&#xff0c;只要在IPv4的基础上&#xff0c;加1比特就够用了&#xff0c;IPv6有些太长了。 64位的IP地址 这是个设想。 64位分成七段&#xff0c;8888881664&…...

1.python爬虫爬取视频网站的视频可下载的源url

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 一、爬取的源网站二、实现代码总结 一、爬取的源网站 http://www.lzizy9.com/ 在这里以电影片栏下的动作片为例来爬取。 可以看到视频有多页&#xff0c;因此需要…...

Linux目录结构

目录结构必背 &#xff01;&#xff01;&#xff01;&#xff01;&#xff08;在生产环境中必须知道自己在哪个目录下&#xff09;...

电脑问题2【彻底删除CompatTelRunner】

彻底删除CompatTelRunner 电脑偶尔会运行CompatTelRunner造成CPU占用的资源非常大,所以这里要想办法彻底关闭他 本文摘录于&#xff1a;https://mwell.tech/archives/539只是做学习备份之用&#xff0c;绝无抄袭之意&#xff0c;有疑惑请联系本人&#xff01; 解决办法是进入W…...

【算法】【贪心算法】【leetcode】870. 优势洗牌

题目地址&#xff1a;https://leetcode.cn/problems/advantage-shuffle/description/ 题目描述&#xff1a; 给定两个长度相等的数组 nums1 和 nums2&#xff0c;nums1 相对于 nums2 的优势可以用满足 nums1[i] > nums2[i] 的索引 i 的数目来描述。 返回 nums1 的任意排列&…...

Unity AVProVideo安卓播放视频问题

打包ARM64,插件里arm64里的几个库都设置arm64,平台选择安卓 Unity VideoPlayer使用url方式,Android平台下无法播放http链接的视频 主要原因:默认情况下,不允许从Android 8开始使用不安全的HTTP,并且必须使用HTTPS,除非分配了自定义的明文安全策略 解决办法: 只需要修…...

Redis使用手册之字符串

《Redis使用手册字符串设置》 目录 **《Redis使用手册字符串设置》**** SET&#xff1a;为字符串键设置值**** GETSET&#xff1a;获取旧值并设置新值**** MSET&#xff1a;一次为多个字符串键设置值**MGET&#xff1a;一次获取多个字符串键的值**** MSETNX&#xff1a;只在键不…...

嵌入式Linux学习第二天

今天学习linuxC编程。首先要熟悉linux下编写c程序的过程。 编写程序Hello World! 首先创建存放程序的文件夹&#xff0c;如下图所示&#xff1a; 接下来在创建一个文件夹来保存这节要编写的代码。指令&#xff1a;mkdir 3.1 接下来我们要设置VIM编辑器的一些配置&#xff0…...

【intro】图卷积神经网络(GCN)

本文为Graph Neural Networks(GNN)学习笔记-CSDN博客后续&#xff0c;内容为GCN论文阅读&#xff0c;相关博客阅读&#xff0c;kaggle上相关的数据集/文章/代码的阅读三部分&#xff0c;考虑到本人是GNN新手&#xff0c;会先从相关博客开始&#xff0c;进一步看kaggle&#xff…...

【Web】CTFSHOW 新手杯 题解

目录 easy_eval 剪刀石头布 baby_pickle repairman easy_eval 用script标签来绕过 剪刀石头布 需要赢100轮&#x1f914; 右键查看源码拿到提示 一眼session反序列化 打PHP_SESSION_UPLOAD_PROGRESS 脚本 import requestsp1 a|O:4:"Game":1:{s:3:"log…...

react 学习笔记二:ref、状态、继承

基础知识 1、ref 创建变量时&#xff0c;需要运用到username React.createRef()&#xff0c;并将其绑定到对应的节点。在使用时需要获取当前的节点&#xff1b; 注意&#xff1a;vue直接使用里面的值&#xff0c;不需要再用this。 2、状态 组件描述某种显示情况的数据&#…...

[SaaS]建筑领域的sd应用

AirchiDesignhttp://www.aiarchi.art/#/建筑学长——千万建筑师的资源库和AI绘图创作平台建筑学长官网,为青年设计师建立的线上资源共享及AI绘图创作渲染平台,免费提供海量设计案例、CAD图纸、SU模型、PS素材、软件插件下载,提供丰富的设计软件教学与灵感参考素材图库。https:/…...

气象数据nc数据矢量化处理解析及可视化

气象数据可视化是将气象学领域中复杂的数据集转化为图形或图像的过程&#xff0c;以直观展示天气现象、气候模式、趋势和预报结果。气象数据的可视化技术广泛应用于科学研究、气象预报、航空、航海、农业生产、灾害预警系统、城市规划、公众服务等领域。以下是一些关键的气象数…...

APP广告变现,开发者对接百度广告联盟,广告变现收益如何?

百度广告联盟属于广告整合平台&#xff0c;类似的还有穿山甲、优量汇、快手联盟等。 百度广告联盟注册流程&#xff1a; 创建账户&#xff1a;填写用户基本信息&#xff0c;如&#xff1a;用户名、密码、邮箱、手机号&#xff1b; 完善财务信息&#xff1a;填写银行账号、开…...

spring Ai框架整合Ollama,调用本地大模型

Ollama使用 Ollama是一个用于在本地计算机上运行大模型的软件 软件运行后监听11434端口&#xff0c;自己写的程序要调大模型就用这个端口 ollama命令 ollama list&#xff1a;显示模型列表 ollama show&#xff1a;显示模型的信息 ollama pull&#xff1a;拉取模型 ollama pu…...

八股spring+springboot+springMVC+Mybatis(一)

目录 1、面试官&#xff1a;Spring框架中的单例bean是线程安全的吗&#xff1f; 2、面试官&#xff1a;什么是AOP 3、面试官&#xff1a;你们项目中有没有使用到AOP 4、面试官&#xff1a;Spring中的事务是如何实现的 5、面试官&#xff1a;Spring中事务失效的场景有哪些 6、面…...

(六)SQL系列练习题(下)#CDA学习打卡

目录 三. 查询信息 16&#xff09;检索"1"课程分数小于60&#xff0c;按分数降序排列的学生信息​ 17&#xff09;*按平均成绩从高到低显示所有学生的所有课程的成绩以及平均成绩 18&#xff09;*查询各科成绩最高分、最低分和平均分 19&#xff09;*按各科成绩…...

中贸网做的网站/站长工具app下载

1、Semaphore概念 Semaphore是Java1.5之后提供的一种同步工具&#xff0c;Semaphore可以维护访问自身线程个数&#xff0c;并提供了同步机制。使用Semaphore可以控制同时访问资源的线程个数&#xff0c;通过 acquire() 获取一个许可&#xff0c;如果没有就等待&#xff0c;而re…...

电子商务网站建设需要学什么软件/提高seo排名

选择正确的jar包刚开始下载了json-lib-2.2-jdk15.jar包&#xff0c;但是程序报找不JSONObject&#xff0c;JSONArray类&#xff0c;在网上找json移除属性时找不到对应的方法&#xff0c;网上头说使用json需要导入其他相关的包&#xff0c;如commons-lang.jar&#xff0c;ezmorp…...

罗湖网站建设哪家好/百度下载安装2019

我记得大约在半年前&#xff0c;有个朋友问我一个问题&#xff0c;现在有一个选型&#xff1a;一个性能敏感场景&#xff0c;有一个集合&#xff0c;需要确定某一个元素在不在这个集合中&#xff0c;我是用数组直接Contains还是使用HashSet<T>.Contains&#xff1f;大家肯…...

优秀网站h5案例分享/黄金网站app视频播放画质选择

目录 1. 大数据概述 1.1. 概述 1.2. 大数据定义 1.3. 大数据技术发展 2. 大数据应用 2.1. 大数据应用阐述 2.2. 大数据应用架构 2.3. 大数据行业应用 3. 大数据解决方案 3.1. 大数据技术组成 在这里我还是要推荐下我自己建的大数据学习交流qq裙&#xff1a; 957205962&…...

石做视频网站需要牌照/搜索引擎的关键词优化

失语者的狂欢&#xff0c;觉醒者的自焚 ——《杀生》影评 疯癫者是理性世界的迟到者。 ——题记 “境由心生&#xff0c;心由境生”如果说&#xff0c;前者是崇高者的自我救赎&#xff0c;后者&#xff0c;则是千千万万个无助灵魂的挣扎。而对于欲望的封锁&#xff0c;正是心生…...

平湖有做网站得吗/微信指数

说我有一个枚举&#xff1a;public enum OrderStatusType{Waiting 0,Pending,Picked,Shipped,}我生成单选按钮列表如下.Html.RadioButtonFor(m > m.Status,OrderStatusType.Shipped,new {checked true})Html.RadioButtonFor(m > m.Status,OrderStatusType.Waiting)但等…...