广告
返回顶部
首页 > 资讯 > 后端开发 > Python >python文件读写,以后就用with
  • 142
分享到

python文件读写,以后就用with

就用文件python 2023-01-31 00:01:58 142人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

读写文件是最常见的io操作。python内置了读写文件的函数,用法和C是兼容的。读写文件前,我们先必须了解一下,在磁盘上读写文件的功能都是由操作系统提供的,现代操作系统不允许普通的程序直接操作磁盘,所以,读写文件就是请求操作系统打开一个文件

读写文件是最常见的io操作。python内置了读写文件的函数,用法和C是兼容的。

读写文件前,我们先必须了解一下,在磁盘上读写文件的功能都是由操作系统提供的,现代操作系统不允许普通的程序直接操作磁盘,所以,读写文件就是请求操作系统打开一个文件对象(通常称为文件描述符),然后,通过操作系统提供的接口从这个文件对象中读取数据(读文件),或者把数据写入这个文件对象(写文件)。

读文件

要以读文件的模式打开一个文件对象,使用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 "<stdin>", line 1, in <module>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()

复制代码

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

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

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

调用read()会一次性读取文件的全部内容,如果文件有10G,内存就爆了,所以,要保险起见,可以反复调用read(size)方法,每次最多读取size个字节的内容。另外,调用readline()可以每次读取一行内容,调用readlines()一次读取所有内容并按行返回list。因此,要根据需要决定怎么调用。

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

for line in f.readlines():    print(line.strip()) # 把末尾的'\n'删掉

写文件

写文件和读文件是一样的,唯一区别是调用open()函数时,传入标识符'w'或者'wb'表示写文本文件或写二进制文件:

>>> f = open('/Users/michael/test.txt', 'w')>>> f.write('Hello, world!')>>> f.close()

你可以反复调用write()来写入文件,但是务必要调用f.close()来关闭文件。当我们写文件时,操作系统往往不会立刻把数据写入磁盘,而是放到内存缓存起来,空闲的时候再慢慢写入。只有调用close()方法时,操作系统才保证把没有写入的数据全部写入磁盘。忘记调用close()的后果是数据可能只写了一部分到磁盘,剩下的丢失了。所以,还是用with语句来得保险:

with open('/Users/michael/test.txt', 'w') as f:
    f.write('Hello, world!')

要写入特定编码的文本文件,请给open()函数传入encoding参数,将字符串自动转换成指定编码

字符编码

要读取非UTF-8编码的文本文件,需要给open()函数传入encoding参数,例如,读取GBK编码的文件:

>>> f = open('/Users/michael/gbk.txt', 'r', encoding='gbk')>>> f.read()'测试'

遇到有些编码不规范的文件,你可能会遇到UnicodeDecodeError,因为在文本文件中可能夹杂了一些非法编码的字符。遇到这种情况,open()函数还接收一个errors参数,表示如果遇到编码错误后如何处理。最简单的方式是直接忽略:

>>> f = open('/Users/michael/gbk.txt', 'r', encoding='gbk', errors='ignore')

二进制文件

前面讲的默认都是读取文本文件,并且是UTF-8编码的文本文件。要读取二进制文件,比如图片、视频等等,用'rb'模式打开文件即可:

>>> f = open('/Users/michael/test.jpg', 'rb')>>> f.read()
b'\xff\xd8\xff\xe1\x00\x18Exif\x00\x00...' # 十六进制表示的字节

 

 

总结:以后读写文件都使用with open语句,不要再像以前那样用f = open()这种语句了

 

   对于多个文件的读写,可以写成以下两种方式:

复制代码

with open(,,,) as f2:
       ........
       ........
       ........

复制代码

复制代码

with open('/home/xbwang/Desktop/output_measures.txt','r') as f:
........
with open('/home/xbwang/Desktop/output_measures2.txt','r') as f1:
........
with open('/home/xbwang/Desktop/output_output_bk.txt','r') as f2:
........

本文出自https://www.cnblogs.com/ymjyqsx/p/6554817.html

--结束END--

本文标题: python文件读写,以后就用with

本文链接: https://www.lsjlt.com/news/182814.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • python文件读写,以后就用with
    读写文件是最常见的IO操作。Python内置了读写文件的函数,用法和C是兼容的。读写文件前,我们先必须了解一下,在磁盘上读写文件的功能都是由操作系统提供的,现代操作系统不允许普通的程序直接操作磁盘,所以,读写文件就是请求操作系统打开一个文件...
    99+
    2023-01-31
    就用 文件 python
  • python读写文件with open的介绍
    目录一、案例一(读取)1、读取文件 基本实现2、读取文件 中级实现3、读取文件 终极实现二、案例二(写入)1、、写入文件 基本实现2、写入文件终极实现简介: 使用python的过程中...
    99+
    2022-11-12
  • python读写文件with open如何实现
    小编给大家分享一下python读写文件with open如何实现,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!一、案例一(读取)首先创建一个我们要读写的...
    99+
    2023-06-25
  • 使用Python读写csv文件
    简介:CSV (Comma Separated Values) 格式是电子表格和数据库中最常见的输入、输出文件格式。又称逗号分隔值(Comma-Separated Values,CS...
    99+
    2022-11-13
  • python怎么用With关键字读取文件
    这篇文章将为大家详细讲解有关python怎么用With关键字读取文件,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。用With关键字读取文件处理文件时,需要打开文件,处理文件数据,然后关闭文件。如果在使用后...
    99+
    2023-06-27
  • Python使用openpyxl读写excel文件
    需求:读入sample.xlsx中的信息,通过分析其中的身份证号信息,得到每个人的出生日期,性别,年龄,所在省份,星座,属相等等,将结果写入到另一个excel文件中。 首先,要使用openpyxl第三方库需要安装,安装方法如下: pip i...
    99+
    2023-09-11
    python
  • python使用技巧-文件读写
    前言: 在Python中,要对一个文件进行操作,只需要使用内置的open函数打开文件即可。open函数接受文件名和打开模式作为参数,返回一个文件对象。工程师通过文件对象来操作文件,完...
    99+
    2022-11-13
  • python中文件的读取与写入以及os模
    1.文件读取的三部曲:打开 ---> 操作 ----> 关闭 r(默认参数):-只能读,不能写-读取文件不存在 会报错FileNotFoundError: [Errno 2] No such file or directory:...
    99+
    2023-01-31
    文件 python os
  • Python读写EXCEL文件常用方法
    python读写excel的方式有很多,不同的模块在读写的讲法上稍有区别,这里我主要介绍几个常用的方式。 用xlrd和xlwt进行excel读写;用openpyxl进行excel读写;用pandas进行excel读写; 一、数据准备 为了方...
    99+
    2023-09-16
    python excel 数据分析
  • 如何运用python读写CSV文件
    目录1、使用基础Python代码来读写和处理CSV文件2、使用pandas读写和处理CSV文件3、使用内置csv读写和处理CSV文件1、使用基础Python代码来读写和处理CSV文件 import sys #使用...
    99+
    2022-06-02
    python读CSV文件 python读写CSV文件 python CSV文件
  • 使用Python读写多个sheet文件
    目录前言读取文件前言 怎么样使用Python提高自己的工作效率,今天就给大家分享这个吧。我们经常用pandas读入读写excel文件,经常会遇到一个excel文件里存在多个sheet...
    99+
    2022-11-11
  • 怎么使用Python读写CSV文件
    这篇文章主要介绍了怎么使用Python读写CSV文件的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇怎么使用Python读写CSV文件文章都会有所收获,下面我们一起来看看吧。1. 读取CSV文件 csv.read...
    99+
    2023-07-02
  • 【Python】Numpy用fromfile和tofile读写文件
    文章目录 tofilefromfile fromfile和tofile既可以读写二进制文件,也可以读写文本文件,是非常灵活的文件读取函数。 tofile 考虑到大家手头没有合适的文件以...
    99+
    2023-09-01
    python numpy 开发语言 fromfile tofile
  • python利用文件读写编写一个博客
    本文实例为大家分享了python利用文件读写编写一个博客的具体代码,供大家参考,具体内容如下 代码展示 import random import json import time import os de...
    99+
    2022-06-02
    python 博客
  • 如何使用 Python 快速读写文件?
    当我们处理大量数据时,读写文件是非常常见的任务。Python 提供了一系列的内置函数和模块,可以帮助我们快速地读写文件。在本文中,我们将介绍如何使用 Python 快速读写文件。 读文件 Python 读取文件的最基本方法是使用内置函数 o...
    99+
    2023-07-30
    数组 文件 ide
  • Python中使用asyncio 封装文件读写
    前言 和网络 IO 一样,文件读写同样是一个费事的操作。 默认情况下,Python 使用的是系统的阻塞读写。这意味着在 asyncio 中如果调用了 f = file('xx') f.read()...
    99+
    2022-06-04
    文件 Python asyncio
  • python用pandas读写和追加csv文件
    目录csv文件一、创建csv文件二、读写csv文件1.基础python2.pandas三、追加csv文件1.基础python2.pandas总结csv文件 CSV文件是最常用的一个文...
    99+
    2022-11-13
  • python使用NumPy文件的读写操作
    一、使用NumPy读写文本文件 在数据分析中,经常需要从文件中读取数据或将数据写入文件,常用的存储文件的格式有文本文件、CSV格式文件、二进制格式文件和多维数据文件等。 1.将1维或...
    99+
    2022-11-12
  • 利用python实现ftp的文件读写
    ftp登陆连接 from ftplib import FTP #加载ftp模块 ftp=FTP() #设置变量 ftp.set_debuglevel(2) ...
    99+
    2023-01-31
    文件 python ftp
  • python怎么使用pyshp读写shp文件
    今天小编给大家分享一下python怎么使用pyshp读写shp文件的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。安装pip&...
    99+
    2023-07-05
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作