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

Python基础学习11——文件

我们可以利用python对本电脑文件夹里的文件进行处理,python中提供了一系列相关的方法和函数供我们使用。

读取文件

我们现在在本python文件中有一个txt文件名为Lego,那么我们就可以利用python打开该文件

with open('Lego.txt') as file_text:contents = file_text.read()
print(contents)

解释与说明:

  • 代码第1行,open()函数的作用是打开某个文件。有open()函数自然也有close()函数。在python中每打开一个文件都有在使用结束后关闭一个文件。但是由于上面代码中使用了with关键字,则不需要访问文件后人为将其关闭,python会自动将其关闭。
  • 代码第2行,read()函数的作用是读取文本内容并将其赋给contents变量进行接收。
  • 代码第3行,将读取的内容打印出来。注意这样写最后打印的内容会增加空一行,这是因为会多读一个空字符串。想要删去这个空格的一行可以改成print(contents.rstrip()),这样可以删去多余的空隔行。

文件路径

**绝对路径:**文件的完整路径。比如:D:\datasets\coco128\images\train2017

**相对路径:**相对于某个文件夹下的路径。比如:现在我有一个文件所在的路径是D:\datasets\coco128,有另外一个路径是D:\datasets\coco128\images\train2017,那么相对路径就是images\train2017

注意:windows系统使用反斜杠( \ )而不是( / ),但是在python中依然可以使用( / )作为路径表示,也有的版本是( // )

上面的读取文件的代码中,使用的就是相对路径。其直接使用文件格式“Lego.txt”即默认在python运行文件所在目录下搜索另外一个文件。如果文件路径过长且需要重复使用,那么我们可以用一个变量来暂存它:

file = 'D:\datasets\coco128\images\train2017\Lego.txt'
with open(file) as file_text:contents = file_text.read()
print(contents)

逐行读取

file = 'D:\datasets\coco128\images\train2017\Lego.txt'
with open(file) as file_text:for lines in file_text:print(lines)

通过一个for循环我们就可以打印出每一行的内容。

我们再进一步,如果我们想打印出每个字符呢?

file = 'D:\datasets\coco128\images\train2017\Lego.txt'
with open(file) as file_text:for lines in file_text:print(lines)for words in lines:print(words)

我们只需要再嵌套一层即可。通过这两个例子,我们可以理解文件的存取模式:即由字符组成一行行字符串,再由一行行字符串组成一篇文档。

理解了这一点之后,其实我们就可以文件分成各行存入一个列表中。

file = 'D:\datasets\coco128\images\train2017\Lego.txt'
with open(file) as file_text:lines = file_text.readlines()
for line in lines:print(line.rstrip())

这样也可以打印出文档各行。

但是上述做法不能很好的帮我们分离文档中有多少个单词(英文),只能统计有多少个字符。我们可以使用split()函数将单词分离开来:

file = 'D:\datasets\coco128\images\train2017\Lego.txt'
with open(file) as file_text:contents = file_text.read()words = contents.split()num = len(words)

使用len()就可以统计出文档中单词的个数了。

写入文件

file = 'D:\datasets\coco128\images\train2017\Lego.txt'
with open(file, 'w') as file_text:file_text.write("I don't know what to write.\n")file_text.write("I don't know what to write so I write again.\n")

解释与说明:

  • 注意这里的open()函数多加了一个参数’w’,‘w’的意思是“写”,表示对文件需要进行写操作。其实在之前的读取文件中也可以传入参数’r’,但是不传就默认是对文件只读不写。补充一些其它的参数:'r’读取模式'w’写入模式'a’附加模式'r+'读写模式

注意:python只能写入字符串,如果想要传入数值,必须先将其转换成字符串模式。

写入模式和附加模式的区别:

  • 写入模式是将文件中原来的内容全部清除,按指令重新写入内容。
  • 附加模式是将保留文件中原来的内容,在文件文档的后面继续写入内容。

存储数据

很多程序都要求用户输入某种信息,比如用户名等等。而这些信息即使在程序关掉后也需要保存下来,所以我们需要一个能永久存储数据的容器,这个容器就是json文件。

json,全称JavaScript Object Notation,从名字就可以看出,其最初是由JavaScript开发的,但随后成为了一种常见形式,被众多语言所采用。也就是说,用json存储数据不仅能在python中使用,而且还能够在其它语言中使用。

下面我们来看下如何使用json文件存储数据。

json.dump()

json.dump()用于存储数据。

import json
numbers = [1,2,3,4,5,6]
with open('Lego.json','w') as lego:json.dump(numbers,lego)

numbers是存储的数据内容,lego是存储的文件对象

json.load()

json.load()用于存储数据。

import json
with open('Lego.json') as lego:num = json.load(lego)
print(num)

相关文章:

Python基础学习11——文件

我们可以利用python对本电脑文件夹里的文件进行处理,python中提供了一系列相关的方法和函数供我们使用。 读取文件 我们现在在本python文件中有一个txt文件名为Lego,那么我们就可以利用python打开该文件 with open(Lego.txt) as file_text:contents …...

外网用户打不开公司的网站?web服务器端口映射到公网

我们经常会遇到这样的情景,在公司内部可以打开公司的网站,在家里或者外网却打不开,按照网上的做法,重新启动了服务器和iis,还是不行。许多用户设置了路由器端口映射功能,但是端口映射不成功怎么办&#xff…...

【CS224W】(task9)图神经网络的表示能力(更新中!!)

note 基于图同构网络(GIN)的图表征网络。为了得到图表征首先需要做节点表征,然后做图读出。GIN中节点表征的计算遵循WL Test算法中节点标签的更新方法,因此它的上界是WL Test算法。 在图读出中,我们对所有的节点表征&…...

binlog找回误删数据

1、检查当前是否开启binlog存储 输入命令show variables like %log_bin%;,结果如下 可以看到log_bin的值是ON,说明binlog开启了。 2、查找binlog的存储位置 这个去到数据库的my.cnf配置文件中寻找,有一个log_bin的配置 切换到log_bin的目…...

《程序员面试金典(第6版)》面试题 02.03. 删除中间节点

题目描述 若链表中的某个节点,既不是链表头节点,也不是链表尾节点,则称其为该链表的「中间节点」。 假定已知链表的某一个中间节点,请实现一种算法,将该节点从链表中删除。 例如: 传入节点 c&#xff08…...

Spring Boot

目录 SpringBoot SpringBoot创建和使用 什么是Spring Boot Spring Boot优点 Spring Boot项目的创建 项目目录介绍和运行 目录介绍 项目运行 SpringBoot核心设计思想 SpringBoot的配置文件 配置文件的作用 配置文件的格式 注意事项 properties配置文件 propertie…...

图论初入门

目录 一、前言 二、图的概念 三、例题及相关概念 1、全球变暖(2018年省赛,lanqiao0J题号178) 2、欧拉路径 3、小例题 4、例题(洛谷P7771) 一、前言 本文主要讲了树与图的基本概念,图的存储、DFS遍历…...

02-Oracle数据库的启动与关闭

本文章主要讲解Oracle数据库的启动与关闭方法,详细讲解启动Oracle的命令,三种启动数据库的方法及区别;关闭数据库的4种方法及他们的区别。 启动和关闭数据库 •数据库没启动前,只有拥有DBA权限或者以sysoper或sysdba身份才能连接到…...

网络营销培训完能达到什么水平?学完能创业吗?

网络营销本身就是一门创业的技术,很多人学习网络营销,往往担心学完以后技术达不到,再工作几年才可以创业,实际这是错误的理解,那么,网络营销培训完能达到什么水平?新手学员参加网络营销培训&…...

大数据技术之——zeppelin数据清洗

一、zeppelin的安装zeppelin解压后进入到conf配置文件界面。修改zeppelin-site.xml[roothadoop02 conf]# cp zeppelin-site.xml.template zeppelin-site.xml[roothadoop02 conf]# vim zeppelin-site.xml将IP地址和端口号设置成自己的修改 zeppelin-env.shexport JAVA HOME/opt/…...

Barra模型因子的构建及应用系列五之NonLinear Size因子

一、摘要 在前期的Barra模型系列文章中,我们构建了Size因子、Beta因子、Momentum因子和Residual Volatility因子,并分别创建了对应的单因子策略,本节文章在该系列下进一步构建NonLinear Size因子。从回测结果看,自2022年以来&…...

C++ 常用命令行开发工具(Linux)

文章目录1、简介2、gcc / g2.1 system(执行shell 命令)2.2 popen(建立管道I/O)2.3 vforkexec(新建子进程)3、clang3.1 下载和安装clang3.2 clang和gcc比较3.2.1 gcc3.2.2 clang3.2.3 LLVM4、make4.1 例子14…...

java基础学习 day47(抽象类,抽象方法)

1. 抽象方法 将共性的行为(方法)抽取到父类之后,由于每一个子类执行的内容是不一样的,所以,在父类中不能确定具体的方法体,该方法就可以定义为抽象方法。抽象方法定义格式: public abstract 返…...

Java代码弱点与修复之——Open redirect(开放重定向)

弱点描述 Open redirect , 开放重定向,是一种常见的安全漏洞,也被称为“重定向漏洞”。该漏洞通常出现在 Web 应用程序中,攻击者可以利用它将用户重定向到恶意站点,从而进行钓鱼攻击、恶意软件传播、诱骗等活动。 在 Java 中,通过重定向 HTTP 请求来实现应用程序中的跳转…...

Go 指针

指针在编程中,一个内存地址用来定位一段内存。通常地,一个内存地址用一个操作系统原生字(native word)来存储。 一个原生字在32位操作系统上占4个字节,在64位操作系统上占8个字节。 所以,32位操作系统上的理…...

shardingsphere5.1.1分表分库yaml配置 自定义策略

前言通过阅读官方稳定给出示例 https://shardingsphere.apache.org/document一、基本配置示例spring:sharding:datasource:names: ds0, ds1ds0:driver-class-name: com.mysql.jdbc.Driverurl: jdbc:mysql://localhost:3306/db0username: rootpassword: rootds1:driver-class-na…...

“探索未来:VR全景直播技术引领新媒体时代”

随着虚拟现实技术的不断发展,VR全景直播已经成为了越来越受欢迎的直播形式。VR全景直播可以让观众通过虚拟现实设备亲临直播现场,享受身临其境的观看体验。VR全景直播是什么? VR全景直播是虚拟现实技术和直播的结合。相对于传统直播&#xff…...

Spring Cloud(微服务)学习篇(六)

Spring Cloud(微服务)学习篇(六) 2 Sentinel实现流量规则(控制台版) 2.1 变更pom.xml(shop-user-server项目)代码 2.1.1 加入如下依赖 <!--熔断限流--> <dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-…...

MATLAB-Scatter3-三维散点图投影至XYZ三个平面

MATLAB-Scatter3函数可以绘制立体的三维散点图&#xff0c;但有时候需要在该立体图中分析X-Y-Z三者的关系&#xff0c;即1副图呈现出4个信息&#xff0c;XYZ综合信息、XY信息、XZ信息、YZ信息。现有的Scatter3无法实现该功能&#xff0c;本文可实现Scatter3三维立体散点图在三个…...

Unity/C#------委托与事件(一篇文章彻底搞懂...)

一&#xff1a;委托 所有的代码语言创造者母语都是英语&#xff0c;我们从英语翻译到中文的过程中难免会存在一些不太能还原本意的词&#xff0c;比如我之前一直不理解构造函数和析构函数&#xff0c;只知道这俩货作用相反&#xff0c;直到我看到了它的英文意思&#xff0c;Con…...

云计算——弹性云计算器(ECS)

弹性云服务器&#xff1a;ECS 概述 云计算重构了ICT系统&#xff0c;云计算平台厂商推出使得厂家能够主要关注应用管理而非平台管理的云平台&#xff0c;包含如下主要概念。 ECS&#xff08;Elastic Cloud Server&#xff09;&#xff1a;即弹性云服务器&#xff0c;是云计算…...

51c自动驾驶~合集58

我自己的原文哦~ https://blog.51cto.com/whaosoft/13967107 #CCA-Attention 全局池化局部保留&#xff0c;CCA-Attention为LLM长文本建模带来突破性进展 琶洲实验室、华南理工大学联合推出关键上下文感知注意力机制&#xff08;CCA-Attention&#xff09;&#xff0c;…...

ardupilot 开发环境eclipse 中import 缺少C++

目录 文章目录 目录摘要1.修复过程摘要 本节主要解决ardupilot 开发环境eclipse 中import 缺少C++,无法导入ardupilot代码,会引起查看不方便的问题。如下图所示 1.修复过程 0.安装ubuntu 软件中自带的eclipse 1.打开eclipse—Help—install new software 2.在 Work with中…...

零基础设计模式——行为型模式 - 责任链模式

第四部分&#xff1a;行为型模式 - 责任链模式 (Chain of Responsibility Pattern) 欢迎来到行为型模式的学习&#xff01;行为型模式关注对象之间的职责分配、算法封装和对象间的交互。我们将学习的第一个行为型模式是责任链模式。 核心思想&#xff1a;使多个对象都有机会处…...

根据万维钢·精英日课6的内容,使用AI(2025)可以参考以下方法:

根据万维钢精英日课6的内容&#xff0c;使用AI&#xff08;2025&#xff09;可以参考以下方法&#xff1a; 四个洞见 模型已经比人聪明&#xff1a;以ChatGPT o3为代表的AI非常强大&#xff0c;能运用高级理论解释道理、引用最新学术论文&#xff0c;生成对顶尖科学家都有用的…...

OPenCV CUDA模块图像处理-----对图像执行 均值漂移滤波(Mean Shift Filtering)函数meanShiftFiltering()

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 在 GPU 上对图像执行 均值漂移滤波&#xff08;Mean Shift Filtering&#xff09;&#xff0c;用于图像分割或平滑处理。 该函数将输入图像中的…...

JAVA后端开发——多租户

数据隔离是多租户系统中的核心概念&#xff0c;确保一个租户&#xff08;在这个系统中可能是一个公司或一个独立的客户&#xff09;的数据对其他租户是不可见的。在 RuoYi 框架&#xff08;您当前项目所使用的基础框架&#xff09;中&#xff0c;这通常是通过在数据表中增加一个…...

日常一水C

多态 言简意赅&#xff1a;就是一个对象面对同一事件时做出的不同反应 而之前的继承中说过&#xff0c;当子类和父类的函数名相同时&#xff0c;会隐藏父类的同名函数转而调用子类的同名函数&#xff0c;如果要调用父类的同名函数&#xff0c;那么就需要对父类进行引用&#…...

WPF八大法则:告别模态窗口卡顿

⚙️ 核心问题&#xff1a;阻塞式模态窗口的缺陷 原始代码中ShowDialog()会阻塞UI线程&#xff0c;导致后续逻辑无法执行&#xff1a; var result modalWindow.ShowDialog(); // 线程阻塞 ProcessResult(result); // 必须等待窗口关闭根本问题&#xff1a…...

【安全篇】金刚不坏之身:整合 Spring Security + JWT 实现无状态认证与授权

摘要 本文是《Spring Boot 实战派》系列的第四篇。我们将直面所有 Web 应用都无法回避的核心问题&#xff1a;安全。文章将详细阐述认证&#xff08;Authentication) 与授权&#xff08;Authorization的核心概念&#xff0c;对比传统 Session-Cookie 与现代 JWT&#xff08;JS…...