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,还是不行。许多用户设置了路由器端口映射功能,但是端口映射不成功怎么办ÿ…...

【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(…...

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全景直播是虚拟现实技术和直播的结合。相对于传统直播ÿ…...

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

Unity/C#------委托与事件(一篇文章彻底搞懂...)
一:委托 所有的代码语言创造者母语都是英语,我们从英语翻译到中文的过程中难免会存在一些不太能还原本意的词,比如我之前一直不理解构造函数和析构函数,只知道这俩货作用相反,直到我看到了它的英文意思,Con…...
React Native 开发环境搭建(全平台详解)
React Native 开发环境搭建(全平台详解) 在开始使用 React Native 开发移动应用之前,正确设置开发环境是至关重要的一步。本文将为你提供一份全面的指南,涵盖 macOS 和 Windows 平台的配置步骤,如何在 Android 和 iOS…...

DAY 47
三、通道注意力 3.1 通道注意力的定义 # 新增:通道注意力模块(SE模块) class ChannelAttention(nn.Module):"""通道注意力模块(Squeeze-and-Excitation)"""def __init__(self, in_channels, reduction_rat…...

P3 QT项目----记事本(3.8)
3.8 记事本项目总结 项目源码 1.main.cpp #include "widget.h" #include <QApplication> int main(int argc, char *argv[]) {QApplication a(argc, argv);Widget w;w.show();return a.exec(); } 2.widget.cpp #include "widget.h" #include &q…...

华为云Flexus+DeepSeek征文|DeepSeek-V3/R1 商用服务开通全流程与本地部署搭建
华为云FlexusDeepSeek征文|DeepSeek-V3/R1 商用服务开通全流程与本地部署搭建 前言 如今大模型其性能出色,华为云 ModelArts Studio_MaaS大模型即服务平台华为云内置了大模型,能助力我们轻松驾驭 DeepSeek-V3/R1,本文中将分享如何…...
DeepSeek 技术赋能无人农场协同作业:用 AI 重构农田管理 “神经网”
目录 一、引言二、DeepSeek 技术大揭秘2.1 核心架构解析2.2 关键技术剖析 三、智能农业无人农场协同作业现状3.1 发展现状概述3.2 协同作业模式介绍 四、DeepSeek 的 “农场奇妙游”4.1 数据处理与分析4.2 作物生长监测与预测4.3 病虫害防治4.4 农机协同作业调度 五、实际案例大…...

初学 pytest 记录
安装 pip install pytest用例可以是函数也可以是类中的方法 def test_func():print()class TestAdd: # def __init__(self): 在 pytest 中不可以使用__init__方法 # self.cc 12345 pytest.mark.api def test_str(self):res add(1, 2)assert res 12def test_int(self):r…...

JVM 内存结构 详解
内存结构 运行时数据区: Java虚拟机在运行Java程序过程中管理的内存区域。 程序计数器: 线程私有,程序控制流的指示器,分支、循环、跳转、异常处理、线程恢复等基础功能都依赖这个计数器完成。 每个线程都有一个程序计数…...

面向无人机海岸带生态系统监测的语义分割基准数据集
描述:海岸带生态系统的监测是维护生态平衡和可持续发展的重要任务。语义分割技术在遥感影像中的应用为海岸带生态系统的精准监测提供了有效手段。然而,目前该领域仍面临一个挑战,即缺乏公开的专门面向海岸带生态系统的语义分割基准数据集。受…...

iview框架主题色的应用
1.下载 less要使用3.0.0以下的版本 npm install less2.7.3 npm install less-loader4.0.52./src/config/theme.js文件 module.exports {yellow: {theme-color: #FDCE04},blue: {theme-color: #547CE7} }在sass中使用theme配置的颜色主题,无需引入,直接可…...
【学习笔记】erase 删除顺序迭代器后迭代器失效的解决方案
目录 使用 erase 返回值继续迭代使用索引进行遍历 我们知道类似 vector 的顺序迭代器被删除后,迭代器会失效,因为顺序迭代器在内存中是连续存储的,元素删除后,后续元素会前移。 但一些场景中,我们又需要在执行删除操作…...