当前位置: 首页 > 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…...

别再为 Jenkins 安装烦恼,Docker 帮你轻松解决

前言 大家好&#xff0c;又见面了&#xff0c;我是沐风晓月&#xff0c;本文收录与云原生相关的专栏&#xff0c;以下是我的简介&#xff1a; &#x1f3e0;个人主页&#xff1a;我是沐风晓月 &#x1f9d1;个人简介&#xff1a;大家好&#xff0c;我是沐风晓月&#xff0c;双…...

汇编语言程序设计(一)

前言 在学习汇编语言之前&#xff0c;我们应该要知道汇编语言他是一门怎么样的语言。汇编语言是直接工作在硬件上的一门编程语言&#xff0c;学习汇编语言之前最好先了解一下计算机硬件系统的结构和工作原理。学习汇编语言的重点是学习如何利用硬件系统的编程结构和指令集进而…...

【uni-app教程】四、UniAPP 路由配置及页面跳转

四、UniAPP 路由配置及页面跳转 (1) 路由配置 uni-app页面路由为框架统一管理&#xff0c;开发者需要在pages.json里配置每个路由页面的路径及页面样式。类似小程序在 app.json 中配置页面路由一样。所以 uni-app 的路由用法与 Vue Router 不同&#xff0c;如仍希望采用 Vue …...

ROS从入门到精通系列(二十八)-- ROS控制器图形化界面开发

ROS (Robot Operating System, 机器人操作系统) 作为机器人软件中的通信及控制中间件,提供一系列程序库和工具以帮助软件开发者创建机器人应用软件。它提供了硬件抽象、设备驱动、函数库、可视化工具、消息传递和软件包管理等诸多功能。ROS遵循BSD开源许可协议。 随着机器人智…...

Submodule命令:android如何将自己项目中的某个Module作为gitlab中第三方公共库

一、创建远程公共库 1、Android Studio创建本地仓库 创建一个新的module 在新建module中添加代码(此处示例代码) 右击新建的module&#xff0c;打开新建module的命令行界面&#xff0c; 因为我们只上传这个module的代码&#xff0c;而不是整个项目的代码 命令行中输入以下命令…...

MySQL索引事务

1.索引1.1概念索引是一种特殊的文件&#xff0c;包含着对数据表里所有记录的引用指针。可以对表中的一列或多列创建索引&#xff0c;并指定索引的类型&#xff0c;各类索引有各自的数据结果实现。&#xff08;这里只用通俗的语言和图片进行介绍&#xff09;1.2作用数据库中的表…...

ISO27001信息安全管理体系认证

​ISO信息安全管理体系认证 一、什么是ISO信息安全管理体系认证&#xff1f; ISO是信息安全管理体系认证&#xff0c;是由国际标准化组织&#xff08;ISO&#xff09;采纳英国标准协会BS-2标准后实施的管理体系&#xff0c;成为了“信息安全管理”的国际通用语言&#xff0c;企…...

Linux应用GUI开发C++ 之gtkmm4(1)

目录概述GTKgtkmm安装gtkmm4hello,worldcodelite配置代码解释概述 GTK GTK是一个小部件工具包。GTK创建的每个用户界面都由小部件组成。这是在C语言中使用GObject实现的&#xff0c;GObject是一个面向对象的C语言框架。窗口小部件是主容器。然后通过向窗口中添加按钮、下拉菜…...

选课系统的设计与实现

技术&#xff1a;Java等摘要&#xff1a;目前国内各高校的规模越来越大&#xff0c;进而造成教师教学管理等工作量日趋加大。然而&#xff0c;现代教育的信息化、网络化已经成为教育发展的一个重要方向&#xff0c;同时也为解决高校教学管理效率低下的现状&#xff0c;使管理突…...

关于安卓的一些残缺笔记

安卓笔记Android应用项目的开发过程Android的调试Android项目文档结构Intent的显式/隐式调用Activity的生命周期1个Activity界面涉及到生命周期的情况2个Activity界面涉及到生命周期的情况Android布局的理论讲解Activity界面布局ContentProvider是如何实现数据共享Android整体架…...

网站功能价格表/百度sem优化师

升级mysql的编码为 utf8mb41. 原因&#xff0c;mysql 的utf8编码最多支持3个字节&#xff0c;导致了有些四个字节的数据插不进去&#xff0c;如emoji表情2. utf8mb4的最低mysql版本支持版本为5.5.3&#xff0c;若不是&#xff0c;请升级到较新版本。2.1 修改database、table和c…...

保温管有哪些网站做/google chrome官网下载

Dan Griffin本文讨论: 新的凭据提供程序体系结构 为什么弃用了基于 GINA 的身份验证 多因素 (Multi-factor) 身份验证 开发和调试凭据提供程序 本文使用了以下技术: Windows Vista、C目录 新旧两种体系结构的比较 混合凭据提供程序 要求 设计 混合凭据提供程序 混合方式的实现…...

企业网站项目的流程/seo整站优化方案

本章比较入门&#xff0c;主要是mySQL和编辑器navicat的安装&#xff0c;简单的表插入和字符串的理解。首先SQL相对于Excel的优点在于可以储存更多数据&#xff0c;以及方便多人同时访问。关系数据库主要有3种管理系统&#xff1a;mySQL&#xff0c; ORACLE &#xff0c;SQL Se…...

北京一诺互联科技有限公司/网络优化包括

知识点&#xff1a; 1.HTTP请求分为俩种&#xff1a; GET方式和POST方式 2.负载均衡常用调度算法&#xff1a; RR&#xff1a;最简单的一种算法&#xff0c;轮询调度。 LC&#xff1a;最小连接数&#xff0c;根据后端的节点连接数大小动态分配前端请求。 SH&#xff1a;基于来…...

个人空间备案网站名称/曼联vs恩波利比分

概要&#xff1a;why&#xff1a;为什么回收&#xff0c;见whatwhat&#xff1a;垃圾回收哪些内存(不可达对象的确定)when&#xff1a;何时执行GC(安全点、安全区域)how&#xff1a;如何回收(原理——垃圾回收算法、实现——垃圾收集器)1、垃圾回收哪些内存JVM运行时数据区中&a…...

浏览器怎么打开网站服务器设置/广告营销推广方案

此题不具有代表性 也不怎么好I Hate It Time Limit: 9000/3000 MS (Java/Others)Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 14776Accepted Submission(s): 5722Problem Description很多学校流行一种比较的习惯。老师们很喜欢询问&#xff0c;从某某到某…...