python open读取_python,一读取文件open()

在实际操作中,我们经常会读取文件,这个时候python为我们提供了一个open()的方法,供我们读取文件,通过help(open),我们可以获取open的方法

f.close()关闭读取

f.read(size=-1)读取文件size个字符,但未给size赋值或者赋值为负数时,读取的是文件剩余的所有字符,然后以字符串方式进行返回。

f.readline()以写入模式打开,如果文件存在,则在末尾加入

f.write(str)将字符串str写入文件

f.writelines(seq)想文件写入字符串序列seq,seq应该 是一个返回字符串的可迭代对象

f.seek(offset,from)在文件中移动当前读取文件的指针,

f.tell()返回当前文件读取的指针位置

#file 是文件路径,mode 是文件打开模式,常用的应该还有一个encoding 编码格式。

open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)#这个是文件打开模式

''''r' open for reading (default) 默认只读

'w' open for writing, truncating the file first 以写的方式打开文件,会覆盖源文件

'x' create a new file and open it for writing,创建一个新的文件打开并进行写入操作,如果这个文件已经存在,则会报错

'a' open for writing, appending to the end of the file if it exists 以写的方式打开文件,当执行写入操作时,会将写入的内容追加在原文件之后

'b' binary mode 以二进制方式打开文件

't' text mode (default) 以文本模式打开

'+' open a disk file for updating (reading and writing) 可读写模式,可添加到其他模式中用

'U' universal newline mode (deprecated) 通用换行符'''

假设我们有一文件,存放在E:\\python\\day-2\\文字.txt目录下,txt内容为“

我喜欢寂寞,喜欢在夜深人静时独处一室,这样我就可以敞开心扉,与自己的心灵对话。我从中得到了反省,也使我更加向前。

我问心灵:“心灵,我对家人是不是很关心?”

心灵不语,但它在我的脑海中展现出了几幅画面。

画面中,我匆匆而去的关门声掩盖了妈妈那一声“小心点”的关怀;画面中,我对那饭菜不满的情绪,让爸爸无可奈何地摇摇头。

看了这两幅画面,我感到无比愧疚,我看到了自己对家人的冷漠,对亲情的淡漠。

于是,我向心灵保证,我以后一定要关心家人。心灵笑了。

我又问心灵:“心灵,我对朋友是不是很友善?”

心灵赞许的点了点头,说:“有朋友有了困难,你能够热情的帮助;有朋友遇到了伤心事,你能真诚地去安慰。对待朋友就应该这样!”

我开心地笑了。

我再一次问心灵:“我对他人是不是做到了尊重?”

心灵无奈地摇摇头,说:“你还没有,有一次,一位同学不小心碰掉了你的书和笔,你就对他大加指责;有一位陌生人向你问路,你却因忙着回家而不理不睬;还有......”

听了心灵的话,我万方愧疚,甚至有些无地自容。我发誓,我一定要伸出援助之手,以尊重的心态对待每一个人。

在于心灵的对话中,我反省了自己。

我每天都在变化,我要感谢心灵,是它带我成长,是它,让我的成长更加和谐而美丽!

那么我们通过利用open进行对它的操作。

#打开文件

>>> f = open('E:\\python\\day-2\\文字.txt','r')#读取文件

>>>f.read()'我喜欢寂寞,喜欢在夜深人静时独处一室,这样我就可以敞开心扉,与自己的心灵对话。

我从中得到了反省,也使我更加向前。 \u3000\u3000\n

我问心灵:“心灵,我对家人是不是很关心?” \u3000\u3000\n心灵不语,但它在我的脑海中展现出了几幅画面。

\n画面中,我匆匆而去的关门声掩盖了妈妈那一声“小心点”的关怀;画面中,我对那饭菜不满的情绪,让爸爸无可奈何地摇摇头。

\n看了这两幅画面,我感到无比愧疚,我看到了自己对家人的冷漠,对亲情的淡漠。\n于是,我向心灵保证,我以后一定要关心家人。

心灵笑了。 \u3000\u3000\n

我又问心灵:“心灵,我对朋友是不是很友善?” \u3000\u3000\n

心灵赞许的点了点头,说:“有朋友有了困难,你能够热情的帮助;有朋友遇到了伤心事,你能真诚地去安慰。对待朋友就应该这样!” \u3000\u3000\n

我开心地笑了。 \u3000\u3000\n我再一次问心灵:“我对他人是不是做到了尊重?” \u3000\u3000\n

心灵无奈地摇摇头,说:“你还没有,有一次,一位同学不小心碰掉了你的书和笔,你就对他大加指责;有一位陌生人向你问路,你却因忙着回家而不理不睬;还有......” \u3000\u3000\n

听了心灵的话,我万方愧疚,甚至有些无地自容。我发誓,我一定要伸出援助之手,以尊重的心态对待每一个人。 \u3000\u3000\n

在于心灵的对话中,我反省了自己。

\n我每天都在变化,我要感谢心灵,是它带我成长,是它,让我的成长更加和谐而美丽!\n\n'

#再次读取文件

>>>f.read()#返回了空

''

当我们用f.read()第二次读取的时候,因为游标已经走到了文章的结尾,所以第二次读取为空。那么我们想再一次读取该文件的时候

#移动读取指针位置为起始位置

>>>f.seek(0,0)

0#读取文件一行

>>>f.readline()'我喜欢寂寞,喜欢在夜深人静时独处一室,这样我就可以敞开心扉,与自己的心灵对话。我从中得到了反省,也使我更加向前。 \u3000\u3000\n'

#当前位置的游标

>>>f.tell()119

遍历所有对话内容(每一行)

传统的方法,传统的方法虽然可以打印每一句话,但是效率不是很高。先看一下传统方法打印:

#首相将游标归到初始值

>>>f.seek(0,0)

0#利用list 来分割f

>>> list1 =list(f)#循环打出每一句

>>> for each inlist1:print(each)

那么为了解决这个问题 Python为我们提供了直接打印的方式

>>>f.seek(0,0)

0>>> for each_line inf:print(each_line)

接上边的例子,当我们想用write()来对刚才的文件进行写操作的时候,会发现不能写入,直接报错。因为我们操作这个文件的模式是r模式,也就是只读模式:

>>> f.write("我爱你")

Traceback (most recent call last):

File"", line 1, in f.write("我爱你")

io.UnsupportedOperation:notwritable>>>

如果我们想对一个文件进行操作,那么我该如何操作,首先我们尝试一下open(file,'w')

#这里利用w是一个只写操作

>>> f = open('E:\\python\\day-2\\text.txt','w')#我们写入一个i love python

>>> f.write("i love python")13

#尝试用read()来读取

>>>f.read()#报错了,说我们不能读

Traceback (most recent call last):

File"", line 1, in f.read()

io.UnsupportedOperation:notreadable#这个时候如果没有进行下一步操作,你在e盘下看到的那个文件应该是0kb#如果执行了close()操作,就会变成1kb,因为你要告诉Python说 你已经#操作完毕了,可以把这些东西从内存中存储到硬盘了。

>>>f.close()

当我们用‘x’来进行写文件的时候,一定要注意目录下是否已经存在该文件,如果存在则会报错:

>>> e = open('E:\\python\\day-2\\text.txt','x')

Traceback (most recent call last):

File"", line 1, in e= open('E:\\python\\day-2\\text.txt','x')

FileExistsError: [Errno17] File exists: 'E:\\python\\day-2\\text.txt'

但是如果我们不想让报错,那么我们可以用w,这样不管这个文件存在不存在都不会报错,因为如果存在,它就会打开这个文件,如果不存在则会创建这个名字的文件。

#w创建

d = open('E:\\python\\day-2\\text.txt','w')

当我们想在一个文件的内容后边追加内容的时候我们就用到了‘a’,它的打开方式是打开文件,并将输入的字符串append到当前字符串的后边

>>> f = open('E:\\python\\day-2\\文字.txt','a')>>> f.write("are you sure?")14

>>>f.close()>>> f = open('E:\\python\\day-2\\文字.txt','r')>>>f.read()'i love python are you sure?'

>>> f.close()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/332457.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

笔记本计算机风扇声音大怎么办,笔记本电脑噪音大怎么办 全解决方法

笔记本电脑在使用一段时间后,或多或少会产生令人厌烦的噪音。其中大的噪音多数来源于笔记本散热风扇。那么,笔记本电脑噪音大怎么办呢?下面我们来看具体解决方法吧。一、电脑噪音大怎么办之风扇原因在不少人看来,散热和噪音是一对不可调和的…

Maven的resources插件配置详解(含过滤器的配置详解)

文章目录指定配置文件所在的目录使用 excludes 元素可以排除指定的配置文件使用 includes 元素可以指定要处理的文件处理测试资源过滤器配置resources 插件,负责将配置文件复制到编译目录中。Maven Java Web 项目默认的编译目录 target/classes。两种配置文件 src/…

latex如何使节标题居左_为使节构建控制平面的指南第3部分-特定于域的配置API...

latex如何使节标题居左这是探索为Envoy Proxy构建控制平面的系列文章的第3部分。 在本博客系列中,我们将研究以下领域: 采用一种机制来动态更新Envoy的路由,服务发现和其他配置 确定哪些组件构成了控制平面,包括后备存储&#…

微信支付api的服务器上,服务器微信支付接口笔记(与app端对接)

到这里,准备工作就算完成了。支付流程步骤详解:步骤1:用户在商户APP中选择商品,提交订单,选择微信支付。这一步,app将相关订单信息提交给商户步骤2:商户后台收到用户支付单,调用微信…

python写sql语句_Python操作文件模拟SQL语句功能

一、需求 当然此表你在文件存储时可以这样表示 1,Alex Li,22,13651054608,IT,2013-04-01 现需要对这个员工信息文件,实现增删改查操作 1. 可进行模糊查询,语法至少支持下面3种: 1. select name,age from staff_table where age > 22 2. select * from…

Maven的maven-clean-plugin插件详解

maven-clean-plugin 插件对应的命令是 mvn clean,执行 mvn clean 命令会删除构建输出目录 target。 打开命令终端,切换到 pom.xml 所在目录下,执行下面的命令: [~/documents/IdeaProjects/demo02]$ mvn clean [INFO] Scanning f…

jep290涉及jdk版本_JDK 12 – JEP 325开关表达式

jep290涉及jdk版本JDK 12已于2019年3月19 日上线GA,继续致力于缩短发布周期和频繁发布。 该版本的功能部分可以在这里找到。 对于开发人员来说,有趣的功能之一是“ JEP 325开关表达式 ”,它可以作为预览功能使用。 此处定义的预览功能是&…

笑傲江湖客户端服务器地址修改,《笑傲江湖》改键调整操作手把手教你玩笑傲...

《笑傲江湖》采用全新引擎AngelicaIII打造,秉承原著武侠精髓,首推新派动作武侠网游概念——融入动作及格斗游戏要素,强调真实的打击感与流畅的动作连贯度,并运用方向判定、位移闪避、移动战斗、攻防一体等多重技术手段&#xff0c…

Maven的maven-compiler-plugin插件详解

文章目录mvn compilemvn test-compile编译插件的配置mvn compile mvn compile 命令会将 src/main/resources 下的资源文件复制到编译输出目录下;接着会将 src/main/java 目录下源代码编译输出到编译输出目录下。编译输出目录默认是 target/classes 目录。 打开命令…

python数据处理常用函数_pytorch中的自定义数据处理详解

pytorch在数据中采用Dataset的数据保存方式,需要继承data.Dataset类,如果需要自己处理数据的话,需要实现两个基本方法。 :.getitem:返回一条数据或者一个样本,obj[index] obj.getitem(index). :.len:返回样本的数量 。…

raid重构原理_5个重构原理示例

raid重构原理这篇文章介绍了重构真正的开源代码( Gradle Modules Plugin )时应用的五​​种(最著名的)重构原理。 语境 当我为Gradle Modules Plugin (PR #73 ) 单独编译 module-info.java &am…

extjs ajax 遮罩层,[Ext JS 4] 实战之Load Mask(加载遮罩)的显示与隐藏

前言Load Mask(遮罩)效果,就是在页面还没有完全显示出来之前, 加上一个转装转的效果。类似:添加这样的效果有两个好处:1. 在页面没完全show出来之前, 把后面的页面给遮罩起来, 防止进行一些非法的操作。2. …

macOS下卸载文件系统_卸载移动硬盘_卸载U盘_推出移动硬盘_推出U盘

先使用命令 df -lh 在终端查看当前系统的所有挂载的文件系统(系统硬盘、移动硬盘、U盘等),命令如下: liaowenxiongliaowenxiongdeMacBook-Air ~ % df -h Filesystem Size Used Avail Capacity iused ifree %iused …

python isalnum函数_Python 字符串 (isdigit, isalnum,isnumeric)转

Python isdigit() 方法检测字符串是否只由数字组成。 语法 isdigit()方法语法: str.isdigit() 参数 无。 返回值 如果字符串只包含数字则返回 True 否则返回 False。 Python isdecimal() 方法检查字符串是否只包含十进制字符。这种方法只存在于unicode对象。 注意:定…

zing jvm_Zing加快了JVM应用程序的预热

zing jvmJava虚拟机(JVM)提供了托管运行时环境,用于安全部署应用程序,其性能通常可以超过本机编译语言(如C和C )。 通过即时(JIT)编译进行垃圾回收和自适应编译的内存管理是两个最突…

黎明觉醒测试服服务器维护怎么办,黎明觉醒测试资格进不去怎么办

黎明觉醒测试资格进不去怎么办?黎明觉醒游戏在在9月16日迎来曙光测试,相信不少玩家都去玩了发现自己进不去游戏,这是怎么回事呢?和小编一起来看看吧。黎明觉醒测试资格进不去怎么办一、测试资格进不去获得测试资格的玩家官方已提前…

查看Linux命令_搜索Linux命令_查找Linux命令

站点1:https://tool.lu/command/ 站点2:https://www.linuxcool.com/

蜂鸣器音乐代码 天空之城_潮玩 | 艺术展览,乐队live现场,网红小黑泥,贩卖“美好”的市集……一场未来公共生活,天空之城和你一起探索!...

第一次打卡这样的新媒体艺术作品,不是画作,也不是艺术品陈列,而是一场看的见的引力交响曲~错落的磁场具象成看得见的流动痕迹,不动声响却震撼的感官体验。很容易让人沉浸其中,去捕捉流动的方向和瞬间。虽然UFO是没看到…

自动部署 管道 ci cd_自动化测试在CI CD管道中的作用

自动部署 管道 ci cd业界广泛采用的软件开发实践:持续集成和持续部署可确保良好地交付产品并经常交付。 常规代码提交需要常规/连续测试,而如果忽略它,则可能导致非弹性基础结构。 如何交付坚固的CI CD管道? 对于许多公司来说&…

Maven的maven-install-plugin插件详解

文章目录将下载到本地的jar文件安装到Maven本地仓库中将当前项目安装到Maven本地仓库中参考maven-install-plugin 插件的作用:1.可以将当前项目安装到 Maven 本地仓库,供本地其它 Maven 项目使用 执行 mvn install 命令将当前项目安装到 Maven 本地仓库…