Python 文件的读写操作
文章目录
- 1. 文件对象
- 1.1 文件打开方式
- 1.1.1 打开文件
- 1.1.2 关闭文件
- 1.1.3 访问模式
- 1.2文件读取
- 1.2.1 read()
- 1.2.2 readline()
- 1.2.3 readlines()
- 1.3 文件迭代
- 1.4 文件输入
- 1.4.1 write()
- 1.4.2 writelines()
1. 文件对象
文件读写操作:
- 把大象放冰箱里,拢共分几步?
- 准备字典文件
函数速查:
常用函数 | 功能 |
---|---|
f = open(‘PATH’) | 打开指定路径的文件f 是文件对象。 |
f.read() | 从文件对象中读取文件内容 |
f.readline() | 读取一行内容 |
f.readlines() | 返回一个列表,元素是文件的每一行内容 |
f.write() | 向文件中写入内容 |
f.writelines() | 以列表的方式向文件中写入内容。 |
f.close() | 关闭文件 |
time.sleep() | 沉睡响应的秒数 |
1.1 文件打开方式
1.1.1 打开文件
使用open() 函数打开 1.txt 文件,指定只读模式文件(打开冰箱门)
基本语法:
#打开文件
f = open("1.txt")#查看文件类型
print(type(f))
1.1.2 关闭文件
#打开文件
f = open('E:\Python Code\\1.txt', 'r')#关闭文件
f.close()#查看文件是否关闭
print(f.closed)
1.1.3 访问模式
访问模式 | 操作 | 说明 |
---|---|---|
r (read) | 以读方式打开 | 默认打开文件的方式 文件不存在则报错。 |
w (write) | 以写方式打开 | 文件存在则清空,不存在则创建。 |
a (add) | 以追加模式打开 | 不存在则创建。 存在则追加 |
+ | 以读写模式打开 | 如r+,w+,a+。 |
b | 以二进制模式打开 | 如rb,wb,ab。 |
常用打开文件的参数:
r
w
a
rb
wb
ab
f = open("./pass.dic", "r")
print(f.closed) #False
f.close()
f = open("./pass.dic", "W")
f.close()
说明:
open(“./pass.dic”, “r”) :表示已读的方式打开
f.closed :表示查看文件是否关闭
f.close() :表示关闭文件
open(“./pass.dic”, “W”) :表示以写的方式打开,写完以后记得关闭文件。
1.2文件读取
1.2.1 read()
read() 方法用来读取文件内容。
f = open("E:\Python Code\\1.txt",'r')
data=f.read()
print(data)
read() 方法有点莽,读取文件中所有内容,此方法慎用。
read() 方法比较适合读取二进制文件,包括exe 程序,图片等文件,不适合读取纯文本文件。
\n 表示换行(也可以\n\r)
1.2.2 readline()
读取打开文件的一行(读取下个行结束符之前的所有字节),包括行结束符,作为字符串返回。它也有一个可选的size 参数,默认为-1,代表读至行结束符,如果提供了该参数,那么在超过size 个字节后会返回不完整的行。
该函数每执行一次,向下读取一行。
f = open("E:\Python Code\\1.txt",'r')
print(f.readline()) #输出第一行,此时文件指针指向第二行开头
print(f.readline())
除去中间的空行,使用strip
函数,默认去除头尾的空格或者换行符:
f = open("E:\Python Code\\1.txt",'r')
print((f.readline()).strip())
print((f.readline()).strip())
1.2.3 readlines()
readlines() 方法读取所有(剩余的)行,然后把它们作为一个元素是字符串的列表返回。
f = open("E:\Python Code\\1.txt",'r')
print(f.readlines()) #从头开始,返回一个字符串列表
print("---------------------") #为了直观一点
print(f.readline()) #因为文件指针已经指向了文件末尾,所以会输出空
print("---------------------") #为了直观一点
f.seek(0,0) #此时就需要使用seek函数来重新设置文件读取指针的位置
print(f.readline()) #再次输出
f.close()
说明:
seek(0,0) 重新设置文件读取指针到开头
1.3 文件迭代
如果需要逐行处理文件,可以结合for 循环迭代(遍历)文件。迭代文件的方法与处理其他序列类型的数据类似。
# 12 - 文件迭代f = open(file = "E:\Python Code\\1.txt", mode = "r")for i in f: # f 也可换成 f.readlines()print(i.strip())f.close()
有可能遇到的问题:
- 在编程时,f.close() 方法容易忘记写。
- 在处理文件时,有可能会遇到异常,导致整个脚本强制退出,f.close() 不会被执行到。
# 13 - 文件迭代的改进方法.pywith open(file = "E:\Python Code\\1.txt", mode = "r") as f:for line in f:print(line.strip())
使用该关键字可以让python去确定,我们在不需要访问文件的时候自动关闭文件。也就是说我们只需要打开和操纵文件,python会在合适的机会关闭文件。即使在文件打开过程中,遇到异常无法关闭文件的情况下,也能自动关闭文件。
1.4 文件输入
1.4.1 write()
write() 内建方法功能与read() 和readline() 相反。它把含有文本数据或二进制数据块的字符串写入到文件中去。写入文件时,不会自动添加行结束标志,需要程序员手工输入。
f = open('E:\Python Code\\1.txt', 'a') #打开文件方式为追加
f.write('g_h_i\n') #追加写入
f.close() #关闭f = open('E:\Python Code\\1.txt', 'a')
f.write("zhangsan\n")
f.close()f = open('E:\Python Code\\1.txt', 'r') #打开文件方式为读取
print(f.readlines()) #以文件列表的形式输出
f.close()
1.4.2 writelines()
和readlines() 一样,writelines() 方法是针对列表的操作,它接受一个字符串列表作为参数,将它们写入文件,行结束符并不会被自动加入,所以如果需要的话,必须在调用writelines() 前给每行结尾加上行结束符。
>>> password_list=
['venustech\n', 'nsfocus\n', 'topsec\n', 'dbappsecrutiy\n', 'knownsec\n', 'colasoft\n', 'sangfor\n', 'qianxin\n', 'chaitin\n', 'sbr-info\n']
>>> f = open('sec.dic', 'a')
>>> f.writelines(password_list)
>>> f.close()
adlines()) #以文件列表的形式输出
f.close()
相关文章:
Python 文件的读写操作
文章目录 1. 文件对象1.1 文件打开方式1.1.1 打开文件1.1.2 关闭文件1.1.3 访问模式 1.2文件读取1.2.1 read()1.2.2 readline()1.2.3 readlines() 1.3 文件迭代1.4 文件输入1.4.1 write()1.4.2 writelines() 1. 文件对象 文件读写操作: 把大象放冰箱里,…...
多线程回顾、集合Collection、Set、List等基本知识
多线程回顾 问: 多线程的两种创建方式? 继承Thread类实现Runnable接口线程池Callable 问:多线程通常会遇到线程安全问题? 什么情况下会遇到线程安全问题? 答:一个数据被多个线程访问(有读有写) 解决这个问题的方式? SE:同步锁 synchronized A : 同步代码块 B : 同步方法…...
分享5款用起来很好用的软件,总有一款适合你
很多软件用起来很好用,但是由于这样那样的原因,一直没什么知名度,但是不代表它们不好用,我的任务就是把这些宝藏分享给大家。 1.图像处理——Photoscissors Photoscissors是一款在线图像背景移除工具,可以让你轻松地从…...
大数据学习1.5-单机Hadoop
1.修改主机信息 vi /etc/hosts 2.修改信息如下(这里第三位一定是自己的IP 每个人都不一样) 192.168.216.140 hadoop01 192.168.216.141 hadoop02 192.168.216.142 hadoop033.修改Hadoop配置信息-1进入配置信息文件 cd /usr/local/hadoop/hadoop-2.7.1/etc/hadoop/ 4.修改Had…...
Cesium对实体元素鼠标点击popup div信息框
一、简介 设置div信息框模板,给实体元素绑定事件,同步空间位置,然后在回调函数弹出信息框。 二、示例源码 <!DOCTYPE html> <html lang="en"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" …...
有多条业务线,mysql建多库多表比较好还是一个库多个表比较好呢?
这个问题的答案取决于您的具体需求。以下是一些需要考虑的因素: 数据独立性:如果您的业务线之间的数据是独立的,并且不太可能需要进行跨业务线的查询,那么将它们分成多个数据库可能是有意义的。这样可以使每个业务线的数据更加独…...
C++---异常处理
异常处理 异常处理try语句块和throw表达式异常的抛出和捕获异常的抛出和匹配原则 异常安全异常规范标准异常 异常处理 异常是指存在于运行时的反常行为,这些行为超出了函数正常功能的范围。当程序的某部分检测到一个他无法处理的问题时,需要用到异常处理…...
接口自动化测试(Python+Requests+Unittest)
(1)接口自动化测试的意义、前后端分离思想 接口自动化测试的优缺点: 优点: 测试复用性。 维护成本相对UI自动化低一些。 为什么UI自动化维护成本更高? 因为前端页面变化太快,而且UI自动化比较耗时(比如等待页面元素的…...
驱动开发,IO多路复用(select,poll,epoll三种实现方式的比较)
1.IO多路复用介绍 在使用单进程或单线程情况下,同时处理多个输入输出请求,需要用到IO多路复用;IO多路复用有select/poll/epoll三种实现方式;由于不需要创建新的进程和线程,减少了系统资源的开销,减少了上下…...
大数据-玩转数据-oracel字符串分割转化为多列
一、建表 create table split_string_test(id integer primary key,test_string varchar2(500) );二、插入测试数据 insert into split_string_test values(1, 10,11,12,13,14,22); insert into split_string_test values(2, 22,23,24); insert into split_string_test valu…...
GCP设置Proxy来连接Cloud SQL
在之前的文章用Google CDC来同步Cloud SQL的数据到Bigquery_gzroy的博客-CSDN博客中,我通过在一个VM上设置反向代理的方式,使得Datastream可以通过私用连接连到Cloud SQL数据库进行数据复制。但是这种方式不太方便,主要是VM的状态我们不太方便…...
Python:为何成为当下最热门的编程语言?
文章目录 🍋引言🍋1. 简单易学🍋2. 多领域应用🍋3. 强大的社区支持🍋4. 丰富的库和框架🍋5. 跨平台兼容🍋6. 开源和免费🍋7. 数据科学和人工智能的崛起🍋8. 自动化和脚本…...
【echarts入门】:vue项目中应用echarts
一.安装echarts 在项目集成终端下载echarts npm install echarts --save 二.全局引入 创建/components/echarts/index.js // 引入 echarts 核心模块,核心模块提供了 echarts 使用必须要的接口。 import * as echarts from "echarts/core";/** 引入任…...
Seata 源码篇之AT模式启动流程 - 上 - 02
Seata 源码篇之AT模式启动流程 - 02 自动配置两个关键点 初始化初始化TM初始化RM初始化TC 全局事务执行流程TM 发起全局事务GlobalTransactional 注解处理全局事务的开启 TM 和 RM 执行分支事务IntroductionDelegatingIntroductionInterceptorDelegatePerTargetObjectIntroduct…...
FFMPEG视频压缩与Python使用方法
一、简介 FFMPEG 是一个完整的,跨平台的解决方案,记录,转换和流音频和视频。 官网:https://ffmpeg.org/ 二、安装 1、Linux: sudo apt install ffmpeg 2、Mac: brew install ffmpeg 3、Windows: 下载文件&#…...
SpringMVC自定义注解---[详细介绍]
一,对于SpringMVC自定义注解概念 是一种特殊的 Java 注解,它允许开发者在代码中添加自定义的元数据,并且可以在运行时使用反射机制来获取和处理这些信息。在 Spring MVC 中,自定义注解通常用于定义控制器、请求处理方法、参数或者…...
5.4 转换数据
5.4 转换数据 5.4.1 哑变量处理类别型数据5.4.2 离散化连续型数据1、等宽法2、等频法3、聚类分析法 数据集 E:/Input/ptest.csv 5.4.1 哑变量处理类别型数据 数据分析模型中有相当一部分的算法模型都要求输入的特征为数值型,但实际数据中特征的类型不一定只有数值…...
雷池社区WAF:保护您的网站免受黑客攻击 | 开源日报 0918
keras-team/keras Stars: 59.2k License: Apache-2.0 Keras 是一个用 Python 编写的深度学习 API,运行在机器学习平台 TensorFlow 之上。它 简单易用:减少了开发者认知负荷,使其能够更关注问题中真正重要的部分。灵活性强:通过逐…...
链表反转-LeetCode206
**题目:**给你单链表的头结点head,请反转链表,并返回反转后的链表。 示例: 输入:head [1,2,3,4,5] 输出:[5,4,3,2&#x…...
北邮22级信通院数电:Verilog-FPGA(3)实验“跑通第一个例程”modelsim仿真及遇到的问题汇总(持续更新中)
北邮22信通一枚~ 跟随课程进度更新北邮信通院数字系统设计的笔记、代码和文章 持续关注作者 迎接数电实验学习~ 获取更多文章,请访问专栏: 北邮22级信通院数电实验_青山如墨雨如画的博客-CSDN博客 注意:本篇文章所有绝对路径的展示都来自…...
4G工业路由器,开启智能工厂,这就是关键所在
提到工业物联网,首先联想到的就是数据传输。要把海量的工业数据从设备端传到控制中心,无线数传终端就发挥着重要作用。今天就跟着小编来看看它的“联”是怎么建立的吧! 原文:https://www.key-iot.com/iotlist/1838.html 一提到无线数传终端,相信大家首先想到的是…...
计组-机器字长、存储字长、指令字长以及和他们有关的机器位数
🌳🌳🌳前言:本文总结了机器字长、存储字长、指令字长的概念以及和它们相关的机器位数。 目录 字长 机器字长 指令字长 存储字长 寄存器的位数 总结 字长 🌟字长一个字中的二进制位数。 🌟字长由微处…...
解决express服务器接收post请求报错:“req.body==> undefined“
现象如下: 解决办法:在代码中加入body-parser解析 const bodyParser require("body-parser"); app.use(bodyParser.urlencoded({ extended: true })); app.use(bodyParser.json()); 参考: How to fix "req.body undefined&q…...
5.zigbee的开发,串口putchar重定向(使用print),单播实验,usb抓包实验
一。实验:单播 实验要求: 实现终端定时向协调器发送给“好好学习”字符串,并且从终端打印出来。 要求: 指定端点为 0x0005 指定簇为 0x0003 1.进入应用层SampleApp.c中,串口的重定向 报错ÿ…...
解决AU报“MME无法使用“问题
今天在Adobe Audition(简称AU)软件,打开麦克风时,弹出如下错误:“加载默认的输入和输出设备失败:MME设备内部错误”,如图(1)所示: 图(1) AU报“MME设备内部错误” 继续点击AU菜单栏上的【编辑】–》首选项–》音频硬件,…...
Maven 安装配置
Maven 安装配置 文章目录 Maven 安装配置一、下载 Maven二、解压Maven核心程序三、指定本地仓库四、配置阿里云镜像仓库4.1 将原有的例子配置注释掉4.2 加入新的配置 五、配置 Maven 工程的基础 JDK 版本六、配置环境变量6.1 检查 JAVAHOME 配置是否正确6.2 配置 MAVENHOME6.3 …...
vscode 配置网址
首先我的项目是一个面向医院的系统 我是在三个文件里都配置了网址 第一个文件:vue.config.js const path require(path) const webpack require(webpack) const createThemeColorReplacerPlugin require(./config/plugin.config)function resolve (dir) {retu…...
git 本地工作区和仓库区基本使用
(1)git 本地有三个区 工作区和暂存区和 git管理的仓库. (自行动手实践理解,然后就入门了)(2)本地初次使用git做的事情,需要做如下工作 git config --global user.name "xx" git config --global user.email xxxqq.com git config --globa…...
有效的括号(栈的高频面试题)
一、题目描述 题目连接:有效的括号 给定一个只包括 (,),{,},[,] 的字符串 s ,判断字符串是否有效。 有效字符串需满足: 左括号必须用相同类型的右括号闭合。左括号必须以正确的顺…...
GIS跟踪监管系统电子围栏
GIS跟踪监管系统电子围栏 (1)电子围栏展示。① 显示:② 隐藏:(2)电子围栏修改。① 新增电子围栏。② 修改电子围栏。工具箱(1)测量。① 测量距离:② 测量面积:…...
南阳网站seo推广公司哪家好/推广服务商
1.栈的基础概念 a.栈是限制在表的一端进行插入(进栈)和删除(出栈)运算的线性表,而进行这两个操作,需要一个头指针。b.通常称插入,删除的这一端为栈顶,另一端为栈底。c.当表中没有元素…...
开通网站必须做域名空间/北京专业seo公司
上节课老师留的是求一维数组的子数组的和的最大值,我采用的方法是以第一个元素为起点,判断前一个元素,前2个元素,一直到前n个元素,求它们中的最大值,然后以第二个元素为起点,求前一个元素&#…...
香港主机wordpress/泉州seo代理商
ADO.NET,需要了解到Connection 联系连接,,Command命令, ,DataReader对象,DataAdapter 数据适配器,DataSet 资料组这几个对象,他们是操作数据库的重要对象; Connection:它…...
网站套餐报价 模版/成都公司建站模板
http://blog.csdn.net/wuxiaokaixinguo/article/details/8895187...
如何做网站设计/aso优化技巧大aso技巧
环境下载Centos有YUM安装功能,所以NGINX、PHP、MYSQL安装都很简单yum install nginxyum install php-*yum install mysql下载WorkPress时要特别注意,由于下载了最新版导致反复折腾两天。之后才发现默认安装的php-fpm版本不够高导致,php编译异…...
沧州高端网站建设公司/网络营销方案设计范文
转自:http://www.itzhai.com/java-notes-regex-matches-and-lookingat.html#read-more 1、基本语法2、String内建的正则表达式功能2.1、String类自带的正则表达式工具2.1.1、split方法2.1.2、字符串替换之replaceFirst和replaceAll方法3、创建正则表达式:3.1、Patte…...