Ptyhon文件读写时w和w+以及读取文件时seek(0)的作用

2023-10-08 22:50
文章标签 作用 读取 读写 seek ptyhon

本文主要是介绍Ptyhon文件读写时w和w+以及读取文件时seek(0)的作用,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

w和w+的区别

w是能写入文件,无法读取文件(读取文件时会报错)。

#%%
fname = input("请输入要写入的文件:")
fo = open(fname,'w')
ls = ["清明时节雨纷纷,","路上行人欲断魂,","借问酒家何处有,","牧童遥指杏花村。"]
fo.writelines(ls)
#fo.seek(0)
for line in fo:print(line)
fo.close()
UnsupportedOperation: not readable
  • 打开清明.txt,发现为空文件夹,说明也没有写入内容。
    在这里插入图片描述
  • 将读取文件的代码注释掉,重新用w方式写入文件。
fname = input("请输入要写入的文件:")
fo = open(fname,'w')
ls = ["清明时节雨纷纷,","路上行人欲断魂,","借问酒家何处有,","牧童遥指杏花村。"]
fo.writelines(ls)
#fo.seek(0)
# for line in fo:
#     print(line)
fo.close()
  • 再次打开清明.txt发现已经成功写入文件。

w+方式是可写文件同时也可读取文件

fname = input("请输入要写入的文件:")
fo = open(fname,'w+')
ls = ["清明时节雨纷纷,","路上行人欲断魂,","借问酒家何处有,","牧童遥指杏花村。"]
fo.writelines(ls)
#fo.seek(0)
for line in fo:print(line)
fo.close()
  • 发现没有报错,在清明.txt中也能看到写入的内容,但是也没有打印出内容。**说明w+确实是可读可写的,而没有打印出相关内容的原因在于指针的问题。**但是当打开txt文件发现指针确是指向开头,而不是指向末尾的。这主要是由于f.close()后指针重新位于开头,但是打印操作在这之前就已经执行了,所以没能打印出内容。
  • 实际上去掉最后一行f.close()代码,再次打开清明.txt文件,发现是一个空文件夹,说明要想成功的写入文件,必须要有close()操作才行。

seek(0)让指针定位到开头

  • 将fo.seek(0)代码放在打印操作前,再次执行上面代码,就可以看到打印输出的内容了。

参考博文

python中文件读取中w,w+之间的区别
Python文件操作中的a,a+,w,w+几种方式的区别

这篇关于Ptyhon文件读写时w和w+以及读取文件时seek(0)的作用的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/168542

相关文章

Springboot配置文件相关语法及读取方式详解

《Springboot配置文件相关语法及读取方式详解》本文主要介绍了SpringBoot中的两种配置文件形式,即.properties文件和.yml/.yaml文件,详细讲解了这两种文件的语法和读取方... 目录配置文件的形式语法1、key-value形式2、数组形式读取方式1、通过@value注解2、通过

MySQL日志UndoLog的作用

《MySQL日志UndoLog的作用》UndoLog是InnoDB用于事务回滚和MVCC的重要机制,本文主要介绍了MySQL日志UndoLog的作用,文中介绍的非常详细,对大家的学习或者工作具有一定的... 目录一、Undo Log 的作用二、Undo Log 的分类三、Undo Log 的存储四、Undo

Qt实现对Word网页的读取功能

《Qt实现对Word网页的读取功能》文章介绍了几种在Qt中实现Word文档(.docx/.doc)读写功能的方法,包括基于QAxObject的COM接口调用、DOCX模板替换及跨平台解决方案,重点讨论... 目录1. 核心实现方式2. 基于QAxObject的COM接口调用(Windows专用)2.1 环境

C++ move 的作用详解及陷阱最佳实践

《C++move的作用详解及陷阱最佳实践》文章详细介绍了C++中的`std::move`函数的作用,包括为什么需要它、它的本质、典型使用场景、以及一些常见陷阱和最佳实践,感兴趣的朋友跟随小编一起看... 目录C++ move 的作用详解一、一句话总结二、为什么需要 move?C++98/03 的痛点⚡C++

JAVA transient 关键字作用详解

《JAVAtransient关键字作用详解》Java的transient关键字用于修饰成员变量,使其不参与序列化过程,通过自定义序列化方法,可以手动控制transient变量的序列化行为,本文给大... 目录一、transient关键字作用二、原理详解三、典型使用场景四、代码示例五、注意事项六、与 stat

Spring Boot/Spring MVC核心注解的作用详解

《SpringBoot/SpringMVC核心注解的作用详解》本文详细介绍了SpringBoot和SpringMVC中最常用的15个核心注解,涵盖了请求路由映射、参数绑定、RESTfulAPI、... 目录一、Spring/Spring MVC注解的核心作用二、请求映射与RESTful API注解系列2.1

在C#中读取文件的六种主流方法详解

《在C#中读取文件的六种主流方法详解》在C#中读取文件有多种方法,不同方式适用于不同场景(小型文件、大型文件、文本文件或二进制文件),本文给大家介绍了6种主流方法以及其适用场景,需要的朋友可以参考下... 目录方法1:File.ReadAllText(读取整个文本文件)方法2:File.ReadAllLin

在SpringBoot+MyBatis项目中实现MySQL读写分离的实战指南

《在SpringBoot+MyBatis项目中实现MySQL读写分离的实战指南》在SpringBoot和MyBatis项目中实现MySQL读写分离,主要有两种思路:一种是在应用层通过代码和配置手动控制... 目录如何选择实现方案核心实现:应用层手动分离实施中的关键问题与解决方案总结在Spring Boot和

MySQL数据库读写分离与负载均衡的实现逻辑

《MySQL数据库读写分离与负载均衡的实现逻辑》读写分离与负载均衡是数据库优化的关键策略,读写分离的核心是将数据库的读操作与写操作分离,本文给大家介绍MySQL数据库读写分离与负载均衡的实现方式,感兴... 目录读写分离与负载均衡的核心概念与目的读写分离的必要性与实现逻辑读写分离的实现方式及优缺点读负载均衡

C#中的sealed修饰符的作用详解

《C#中的sealed修饰符的作用详解》在C#中,sealed修饰符的作用是“密封”用来阻止类被继承,或者阻止方法/属性在派生类中被重写,接下来通过本文给大家介绍C#中的sealed修饰符的作用详解,... 目录✅ 1.sealed用于类(class)作用:示例:✅ 2.sealed用于方法或属性(必须与