iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python 7.1 文件读写
  • 176
分享到

Python 7.1 文件读写

文件Python 2023-01-31 06:01:25 176人浏览 薄情痞子

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

摘要

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

文件读写

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

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


读文件

要以读文件的格式打开一个文件对象,使用Python的open()函数,传入文件名和标识符:
>>>f =open('user/bin/xie.txt','r')

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

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

>>> f =open('c:/user/bin/test.py','r')

Traceback (most recent call last):

  File "<stdin>", line 1, in <module>

FileNotFoundError: [Errno 2] No such file or directory: 'c:/user/bin/test.py'

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

>>> f.read()
'Hello, world!'

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

由于文件读写时都有可能产生IOError,一旦出错,后边的f.close()就不会调用。所以,为了保证无论是否出错都会把文件正确关掉,我们可以使用try...finally来实现:
try:
    f =open('user/bin/test.py','r')

    print(f.read())

finally:
    if f:
        f.close()

但是,每次都这么写很麻烦,所以,Python引入了with语句来帮助我们调用close()函数:
with open('user/bin/test.py','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())


file-like Object 

像open()函数返回的这种有个read()方法的对象,在Python中成为file-like Object。除了file外,还可以是内存中的字节流,网络流,自定义流等。file-like Object不要求从特定的类继承,只要写个read()方法就行。

StringIO 就是内存中创建的file-like Object,常用作临时缓冲。


二进制文件

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

>>>f =open('user/bin/test.jpg','rb')

>>>f.read()

b'\xff\xd8\xff\xe1\x00\x18Exif\x00\x00...' # 十六进制表示的字节

字符编码

要读取非UTF-8编码的文件,需要给open()函数传入一个encoding参数,例如,读取GBK编码的文件:
>>>f =open('user/bin/gkb.txt','r',encoding ='gbk')

>>>f.read()

'测试'

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

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


写文件

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

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

你可以反复调用write()函数来写文件,但务必调用f.close()关闭文件。当我们写文件时,文件不会立即写入磁盘,而是放到内存缓存起来,空闲时再慢慢写。只有调用close()方法时,操作系统才能保证将文件全部写入磁盘。所以还是用with语句保险:
with(open('user/bin/test.txt','w') as f:

    f.write('Hello world!')

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


小结:

在Python中,文件读写是通过open()函数打开的文件对象完成的,使用with语句操作文件IO是个好习惯。

--结束END--

本文标题: Python 7.1 文件读写

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

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

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

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

下载Word文档
猜你喜欢
  • Python 7.1 文件读写
    文件读写文件读写是我们最常见的IO操作。Python内置了文件读写的函数,用法和C是兼容的。读写文件前,我们必须先了解下,在磁盘上读写文件的功能是由操作系统实现的,现代操作系统不允许普通程序操作磁盘,所以,读写文件就是请求操作系统打开一个文...
    99+
    2023-01-31
    文件 Python
  • python-yml文件读写与xml文件读写
    目录一、python-yml文件读写更新yml的数值二、python-xml文件读写寻找 XML 节点修改 XML 数据建立 XML 结构XPath 搜索XML 排版一、python...
    99+
    2024-04-02
  • Python文件读写
    python文件读写 读写文件是最常见的IO操作。Python内置了读写文件的函数,用法和C是兼容的。 读写文件前,我们先必须了解一下,在磁盘上读写文件的功能都是由操作系统提供的,现代操作系统不允许普通的程序直接操作磁盘,所以,读写...
    99+
    2023-01-31
    文件 Python
  • python读写文件
    python 文件操作 本文系海特网编程技术斑竹Cute所发表,版权归海特网与Cute所有,转载请保留完整信息 #打开文件和进行写操作 f=open('test.txt','w') f.write('hello')&...
    99+
    2023-01-31
    文件 python
  • Python数据读写之Python读写CSV文件
    目录1. 读取CSV文件 csv.reader()2. 写入CSV文件1. 读取CSV文件 csv.reader() 该方法的作用相当于就是通过 ',' 分割csv格...
    99+
    2024-04-02
  • Python读写CSV文件
    csv模块方法csv.readerimport csv    with open('temp.csv','rb') as f:         reader = csv.reader(f)         for row in reader...
    99+
    2023-01-31
    文件 Python CSV
  • python之读写文件
    在磁盘上读写文件的功能都是由操作系统提供的,现代操作系统不允许普通的程序直接操作磁盘,所以,读写文件就是请求操作系统打开一个文件对象(通常称为文件描述符),然后通过操作系统提供的接口从这个文件对象中读取数据(读文件),或者把数据写入这个文件...
    99+
    2023-01-30
    文件 python
  • python读写excel文件
    项目中需要生成excel表格,在网上查了一些资料后,整理记录下。 1. 读excel表格 1 ''' 2 读取XLS,XLSX文件 3 ''' 4 def readExcelFile(filename): 5 # 打开...
    99+
    2023-01-30
    文件 python excel
  • Python读写properties文件
    最近用python写个工具,涉及到properties文件的读写操作。发现Python并没有提供操作properties文件的库,只有一个 ConfigParser 类来支持 .ini 文件的读写,这显然不是我想要的,于是一番折腾...
    99+
    2023-01-31
    文件 Python properties
  • Python 3.5 读写文件
    在Python中读写文件不需要像Java或.Net一样要另外导入io"包",可直接使用open方法open() 返回一个文件对象,并且通常使用两个参数:open(filename, mode)>>>f = open('yo...
    99+
    2023-01-31
    文件 Python
  • Python读写yaml文件
    目录1.关于yaml2.yaml数据结构3.yaml文件格式1.关于yaml yaml基本语法规则: 大小写敏感使用缩进表示层级关系缩进时不允许使用Tab键,只允许使用空格。缩进的空...
    99+
    2024-04-02
  • 【Python】Python读写文件操作
    原帖地址:http://blog.csdn.net/adupt/article/details/44356151.open使用open打开文件后一定要记得调用文件对象的close()方法。比如可以用try/finally语句来确保最后能关闭...
    99+
    2023-01-31
    操作 文件 Python
  • Python基础:文件读写
    由于CPU和内存的速度远远高于外设的速度,所以,在IO编程中,就存在速度严重不匹配的问题。举个例子来说,比如要把100M的数据写入磁盘,CPU输出100M的数据只需要0.01秒,可是磁盘要接收这100M数据可能需要10秒,怎么办呢?有两种办...
    99+
    2023-01-31
    文件 基础 Python
  • Python之gzip文件读写
    gzip文件读写的时候需要用到Python的gzip模块。具体使用如下: # -*- coding: utf-8 -*- import gzip # 写文件 f_out = gzip.open("xxx.gz", "wb") ...
    99+
    2023-01-31
    文件 Python gzip
  • python文件读写(open参数,文件
    1.基本方法 文件读写调用open函数打开一个文件描述符(描述符的个数在操作系统是定义好的) python3情况下读写文件: f = open('py3.txt','wt',encoding='utf-8') f.write(...
    99+
    2023-01-31
    文件 参数 python
  • 使用Python读写csv文件
    简介:CSV (Comma Separated Values) 格式是电子表格和数据库中最常见的输入、输出文件格式。又称逗号分隔值(Comma-Separated Values,CS...
    99+
    2024-04-02
  • Python中怎么读写文件
    Python中怎么读写文件,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。从文件读取和写入文件是任何编程语言的常见需求。任何文件在读写之前都需要打开。大多数编程语...
    99+
    2023-06-15
  • Python如何读写yaml文件
    这篇文章主要介绍Python如何读写yaml文件,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!1.关于yamlyaml基本语法规则:大小写敏感使用缩进表示层级关系缩进时不允许使用Tab键,只允许使用空格。缩进的空格数...
    99+
    2023-06-29
  • 详解python读写json文件
    python处理json文本文件主要是以下四个函数: 函数 作用 ...
    99+
    2024-04-02
  • Python 之文件读写操作
    Python 读写文件    1、打开文件        使用 open 打开文件后,格式:open(filename,mode),最后一定要调用文件对象的 close() 方法,如图所示:                使用到的模式(mo...
    99+
    2023-01-31
    操作 文件 Python
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作