python使用技巧-文件读写

 更新时间:2022年02月20日 11:00:38   作者:zzxiaoma  
这篇文章主要介绍了python使用技巧-文件读写,Python提供了非常方便的文件读写功能,其中open是读写文件的第一步,通过open读写文件的方式和把大象装冰箱是一样的,下面我们就来具体介绍该内容,需要的小伙伴可以参考一下

前言:

在Python中,要对一个文件进行操作,只需要使用内置的open函数打开文件即可。open函数接受文件名和打开模式作为参数,返回一个文件对象。工程师通过文件对象来操作文件,完成以后,调用文件对象的close方法关闭文件即可。

新建opentest.py:

f = open('log.log')
print(f.read())
f.close()

输出:

2022-02-17 13:41:34,796:INFO:info
2022-02-17 13:41:34,797:WARNING:warning
2022-02-17 13:41:34,797:ERROR:error
2022-02-17 13:41:34,797:CRITICAL:critical

open函数默认以'r'模式打开,也可以指定文件的打开模式。

'r' : 默认以读模式打开文件,如果文件不存在,抛出FileNotfoundError异常

'w' : 以写模式打开文件,如果文{牛非空,则文件已有的内容会被清空,如果文件不存在,则创建文件

'x' : 创建一个新的文件,如果文件已经存在,抛出FileExistsError异常

'a' : 在文件末尾追加文件

f = open('log.log','w')
f.write('hello')
f.close()

log.log文件内容

hello

f = open('log.log','a')
f.write('world')
f.close()

log.log文件内容

helloworld

在计算机程序中,每打开一个文件就需要占用一个文件句柄,而一个进程拥有的文件句柄数是有限的。此外,文件句柄也会占用操作系统的资源,因此,在编写程序处理文件时需要注意,文件处理结束后及时关闭文件。文件句柄泄露或许是最常见的资源泄露问题,也是工程师最容易犯的错误。为了避免打开文件后没有及时关闭,大多数编程语言中都使用finally关闭文件句柄。在 Python中,也可以使用finally语句来保证,无论在什么情况下文件都会被关闭。

try:
    f = open('log.log','a')
    f.write('world')
finally:
    f.close()

Python中还有更加简洁优美的写法,即使用上下文管理器

with open('log.log') as f:
    print(f.read())

可以看到,使用上下文管理器以后代码行数变少了。在Python中,如果想把代码写得简洁优美,就应该在保证可读性的前提下代码行数越少越好。

Python提供了三个读相关的函数,分别是readreadline readlines ,它们的作用如下:

  • 1、read:读取文件中的所有内容;
  • 2、readline:一次读取一行;
  • 3、readlines:将文件内容存到一个列表中,列表中的每一行对应于文件中的一行。
with open('log.log') as f:
    print(f.read())
    f.seek(0) #文件读取偏移量到开头
    print(f.readline())
    f.seek(0)
    print(f.readlines())

输出:

2022-02-17 13:41:34,796:INFO:info
2022-02-17 13:41:34,797:WARNING:warning
2022-02-17 13:41:34,797:ERROR:error
2022-02-17 13:41:34,797:CRITICAL:critical
2022-02-17 13:41:34,796:INFO:info

['2022-02-17 13:41:34,796:INFO:info\n', '2022-02-17 13:41:34,797:WARNING:warning\n', '2022-02-17 13:41:34,797:ERROR:error\n', '2022-02-17 13:41:34,797:CRITICAL:critical']

Python提供了两个写函数,分别是writewritelines它们的区别如下:

  • 1、write:写字符串到文件中,并返回写入的字符数
  • 2、writelines:写一个字符串列表到文件中。  
with open('log.log','w') as f:
    f.write('hello')
    f.writelines(['\njohn is good man','\nsan is bad man'])

log.log内容

hello
john is good man
san is bad man

以行为单位依次处理文件中的每一行。

with open('log.log') as f:
    for line in f:
        print(line,end="")

到此这篇关于python使用技巧-文件读写的文章就介绍到这了,更多相关python文件读写内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python用UUID库生成唯一ID的方法示例

    Python用UUID库生成唯一ID的方法示例

    在C#中很容易生成一组唯一码,最常用的是结构体GUID的NewGuid()实例。如果C#运行Guid.NewGuid();将会得到据说世界唯一的号码,形如:887687be-00cf-4dca-8fe4-7c4fc19b9ecc 。最近看了一下Python的相关模块,也发现了一个模块uuid。下面来看看详细的介绍与使用示例吧。
    2016-12-12
  • Python变量作用范围实例分析

    Python变量作用范围实例分析

    这篇文章主要介绍了Python变量作用范围,实例分析了Python中变量的定义与相关作用域,是Python学习中非常重要的基本技巧,需要的朋友可以参考下
    2015-07-07
  • Pygame实现监听鼠标示例详解

    Pygame实现监听鼠标示例详解

    这篇文章主要介绍了通过Pygame模块实现监听鼠标的功能,文章的示例代码讲解详细,对我们的学习或工作有一定的价值,感兴趣的小伙伴可以了解一下
    2021-12-12
  • Python面向对象程序设计示例小结

    Python面向对象程序设计示例小结

    这篇文章主要介绍了Python面向对象程序设计,结合实例形式总结分析了Python面向对象程序设计中比较常见的类定义、实例化、继承、私有变量等相关使用技巧与操作注意事项,需要的朋友可以参考下
    2019-01-01
  • 提升 Python 代码运行速度的6个技巧

    提升 Python 代码运行速度的6个技巧

    本文分享了提升 Python 代码运行速度的6个技巧,Python 比我们想象的运行的要快。我们之所以有先入为主的认为Python运行慢,可能是我们平常的误用和缺乏使用技巧知识。接下来让我们看看如何用一些简单的Trick来提高我们程序的运行性能,需要的朋友可以参考一下
    2022-01-01
  • Python中使用platform模块获取系统信息的用法教程

    Python中使用platform模块获取系统信息的用法教程

    这里我们整理了Python中使用platform模块获取系统信息的用法教程,包括操作系统与Python环境以及系统的环境变量等信息的获取方法:
    2016-07-07
  • Python中工厂模式的实现小结

    Python中工厂模式的实现小结

    工厂模式是一种创建型设计模式,通过定义一个工厂类,将对象的实例化过程封装起来,本文主要介绍了Python中工厂模式的实现小结,具有一定的参考价值,感兴趣的可以了解一下
    2023-11-11
  • 对Python模块导入时全局变量__all__的作用详解

    对Python模块导入时全局变量__all__的作用详解

    今天小编就为大家分享一篇对Python模块导入时全局变量__all__的作用详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-01-01
  • python shutil操作文件实例讲解

    python shutil操作文件实例讲解

    在本篇文章里小编给大家整理了一篇关于python shutil操作文件实例讲解内容,有兴趣的朋友们可以学习下。
    2021-03-03
  • 教你如何在pycharm中使用less

    教你如何在pycharm中使用less

    这篇文章主要介绍了如何在pycharm中使用less,操作步骤真的很简单,本文通过图文并茂的形式给大家详细介绍,需要的朋友可以参考下
    2021-10-10

最新评论