python中打开文件open_Python中打开文件的方式(With open)

1437100-20200329202426385-1552555167.png

1437100-20200329202508981-2078419364.png

1.读文件

要以读文件的模式打开一个文件对象,使用Python内置的open()函数,传入文件名和标

示符:

f = open( '/Users/michael/test.txt', 'r' )

标示符’r’表示读,这样,我们就成功地打开了一个文件。

如果文件不存在,open()函数就会抛出一个IOError的错误,并且给出错误码和详细的信息告诉你文件不存在:

f=open('/Users/michael/notfound.txt', 'r')

Traceback (most recent call last):

File "", line 1, in

FileNotFoundError: [Errno 2] No such file or directory: '/Users/michael/notfound.txt'

如果文件打开成功,接下来,调用read()方法可以一次读取文件的全部内容,Python把内容读到内存,用一个str对象表示:

f.read()

'Hello, world!'

最后一步是调用close()方法关闭文件。文件使用完毕后必须关闭,因为文件对象会占用操作系统的资源,并且操作系统同一时间能打开的文件数量也是有限的:

f.close()

由于文件读写时都有可能产生IOError,一旦出错,后面的f.close()就不会调用。所以,为了保证无论是否出错都能正确地关闭文件,我们可以使用try … finally来实现

try:

f = open('/path/to/file', 'r')

print(f.read())

finally:

if f:

f.close()

2.使用With Open 函数打开,以及常见的坑

但是每次都这么写实在太繁琐,所以,Python引入了with语句来自动帮我们调用close()方法:

with 的作用就是调用close()方法

with open( '/path/to/file', 'r' ) as f:

print( f.read() )

f.read() 读取全部文件内容

这和前面的try ... finally是一样的,但是代码更佳简洁,并且不必调用f.close()方法。

调用read()会一次性读取文件的全部内容,如果文件有10G,内存就爆了。

要保险起见,可以反复调用read(size)方法,每次最多读取size个字节的内容。例如,read(1024) 每次读取1024个字节的数据内容

调用readline()可以每次读取一行内容,调用readlines()一次读取所有内容并按行返回list。因此,要根据需要决定怎么调用。

如果文件很小,read()一次性读取最方便;如果不能确定文件大小,反复调用read(size)比较保险;如果是配置文件,调用readlines()最方便:

for line in f.readlines():

print( line.strip() )

把末尾的’\n’在 strip() 函数中可以把目标内容line里面所有的空格,空行等都删除掉,只剩余文字内容

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

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

相关文章

php连接mysql的方式_php有几种连接mysql的方法

展开全部大致62616964757a686964616fe4b893e5b19e31333363356566有以下方法&#xff1a;1、使用 mysql &#xff0c;提示&#xff1a;此种方法官方不建议。<?php $con mysql_connect("localhost","root","");if (!$con){die(Could not conn…

jdk 安装_Linux入门之Linux CentOS安装jdk

第一步&#xff1a;创建jdk安装目录(该/usr/local/src 目录是空的,最好把我们自己下载的放到这,容易区分)mkdir -p /usr/local/src/jdk第二步&#xff1a;查看之前是否安装rpm -qa | grep -i jdk若之前安装过jdk&#xff0c;下次安装一定把之前的删除干净第三步&#xff1a;命令…

mysql存储过程注释方法_mysql存储过程 详细注释

原文&#xff1a;https://my.oschina.net/u/3582142/blog/1581929delimiter $$ /* 重新定义mysql结束符&#xff0c;而不再是分号是结束符 */create procedure mergeDeclare() /* 创建存储过程 */BEGIN/*定义局部变量*/DECLARE id INT DEFAULT 0;DECLARE Done INT DEFAULT 0;DE…

python爬虫中文乱码_解决Python爬虫处理文件时候中文名称出现乱码问题

当下如果需要批量处理文件&#xff0c;爬虫网页和图片的时候使用Python是最为简单和高效的。但是在处理过程中还是有一些细节问题&#xff0c;比如在爬虫中文名称和处理中文文件URL的时候会出现乱码。实际上就是因为编码的问题。我们在使用的Python3版本默认编码是utf-8。爬虫到…

登陆mysql服务器命令_Mysql服务器登陆,启动,停止等基本操作命令介绍(Linux/Centos环境)...

Mysql服务器登陆,启动,停止等基本操作命令介绍(Linux/Centos环境)1. 启动MySQL服务启动MySQL服务的命令为&#xff1a;命令执行后如图7-5所示&#xff0c;表示启动MySQL服务成功。也可以用/etc/init.d/mysqld的简化命令启动MySQL服务&#xff1a;service mysqld start停止MySQ…

asp点击按钮sql列求和_SQL 结构化查询语言

SQL特点SQL是大小写无关的&#xff0c;但一般的习俗是&#xff0c;关键字大写&#xff08;SELECT WHERE&#xff09;&#xff0c;用户自定义的小写&#xff0c;如表名。SQL如何注释&#xff0c; 两个 -- 开头&#xff0c;即为注释。SQL只用于关系型数据库&#xff0c;如MySQL&a…

mysql建表语句增加注释_MySQL建表语句+添加注释

1.建表注释CREATE TABLE student(id INT PRIMARY KEY AUTO_INCREMENT COMMENT 学号,name VARCHAR(200) COMMENT 姓名,age int COMMENT 年龄) COMMENT学生信息2.修改注释修改表注释-ALTER TABLE student COMMENT 学生表;修改列注释-ALTER TABLE student MODIFY COLUMN name VARC…

python类的使用_python类的使用

创建类和使用类 例子: 创建Dog类 __init__特殊方法 形参self class Dog: def init(self,name,age): #初始化属性name,age self.namename self.ageage def sit(self): #模拟小狗蹲下 print(self.name.title()" is now sitting.") def roll(self): #小狗被命令是打滚 p…

django orm mysql_Django之ORM操作Mysql

#单表查询操作基本方法classBookList(models.Model):title models.CharField(max_length32)price models.DecimalField(max_digits8,decimal_places2) #总共8位&#xff0c;小数占2位publist_date models.DateField() #DateField年月日,DateTimeField详细时间#单独测试models.…

获取两个圆的重合部分的经纬度_(2)万向节的装配和动画仿真:重合同轴心装配约束很常用...

前面的一篇文章中我们已经将万向节装配完成了一部分&#xff0c;还有一部分没有完成装配。前面的装配当中用到了重合&#xff0c;同轴心&#xff0c;相切的装配约束&#xff0c;这几个装配约束都是比较常用的大家一定要注意掌握。前面的话接下来的课程当中我们将会进行完整的装…

php无法连接mysql_php无法连接数据库

PHP无法连接数据库的解决办法总结&#xff1a;1、获取当前 mysql.default_socket、mysqli.default_socket、pdo_mysql.default_socket 配置信息建立一个 PHP 文件&#xff0c;显示 phpinfo()&#xff0c;用浏览器打开如图:在此页面&#xff0c;找到mysql.default_socket、mysql…

oracle 查看监听命令_linux下使用Oracle常用命令

进入Oracle用户1su - oracle以dba身份进入sql语句1sqlplus / as sysdba启动数据库相关命令启动数据库1startup启动监听(关闭监听的命令lsnrctl stop)&#xff0c;退出sql编写界面1lsnrctl start关闭数据库服务&#xff0c;在sql编写界面1shutdown immediate常看当前连接用户的信…

anbu三年模拟_暗部共享三年模拟软件库

暗部共享三年模拟软件库是非常易于使用。用户可以在其中安装下载资源&#xff0c;许多Internet参与者都愿意访问暗部共享三年模拟软件库来下载软件以供使用&#xff0c;并且其中的资源是真实的&#xff0c;不会有伪造的软件包&#xff0c;每个用户都可以放心下载。暗部共享叁年…

对飞行前请求的响应未通过访问控制检查:它没有http ok状态。_对不起,看完这篇HTTP,真的可以吊打面试官...

点击上方“码农沉思录”&#xff0c;选择“设为星标”优质文章&#xff0c;及时送达HTTP 内容协商什么是内容协商在 HTTP 中&#xff0c;内容协商是一种用于在同一 URL 上提供资源的不同表示形式的机制。内容协商机制是指客户端和服务器端就响应的资源内容进行交涉&#xff0c;…

android 监听安装来源_Android编程监听APK安装与删除等过程的方法

本文实例讲述了Android编程监听APK安装与删除等过程的方法。分享给大家供大家参考&#xff0c;具体如下&#xff1a;软件下载后的一系列动作监听&#xff1a;先前是通过Service监听扫描获取状态&#xff0c;以后用这个方法测试使用import android.content.BroadcastReceiver;im…

mysql hma 分布式_mysql基础之mariadb集群双主(主主)架构

一、概念在企业中&#xff0c;数据库高可用一直是企业的重中之重&#xff0c;中小企业很多都是使用mysql主从方案&#xff0c;一主多从&#xff0c;读写分离等&#xff0c;但是单主存在单点故障&#xff0c;从库切换成主库需要作改动。因此&#xff0c;如果是双主或者多主&…

c++十六进制转十进制_一文帮你详细图解二进制、八进制、十进制、十六进制之间的转换...

1、背景(Contexts)之前使用SQL把十进制的整数转换为三十六进制&#xff0c;SQL代码请参考&#xff1a;SQL Server 进制转换函数&#xff0c;其实它是基于二、八、十、十六进制转换的计算公式的&#xff0c;进制之间的转换是很基础的知识&#xff0c;但是我发现网络上没有一篇能…

python进程暂停_如何在Python中暂停多进程?

我希望用户能够在怎么开始的实现它&#xff1f;在我的代码是&#xff1a;# -*- coding: utf-8 -*-from PySide import QtCore, QtGuifrom Ui_MainWindow import Ui_MainWindowfrom queue import Queueimport sysimport multiprocessing, os, timedef do_work():print (Work Sta…

ceph存储原理_赠书 | Linux 开源存储全栈详解——从Ceph到容器存储

//留言点赞赠书我有书&#xff0c;你有故事么&#xff1f;留言说出你的存储故事留言点赞前两名&#xff0c;免费送此书截止日期12.27号12.30号公布名单//内容简介本书致力于帮助读者形成有关Linux开源存储世界的细致的拓扑&#xff0c;从存储硬件、Linux存储堆栈、存储加速、存…

mysql双主 绿色_mysql (双主,互主)

Master-Master(双主)1、测试环境Master/Slave Master1/Slave1IP 192.168.1.13 192.168.1.10为了保持干净的环境&#xff1a;两边服务器rm -rf /var/lib/mysql/*service mysqld restartIP:192.168.1.13IP:192.168.1.102、…