Python文件操作和异常处理的方法和技巧

作者:互联小助手 时间:2021-05-22 10:54:10 

Python文件操作和异常处理

Python作为一门高级编程语言,为我们提供了丰富的文件操作和异常处理机制。在本文中,我们将从以下几个方面讨论Python文件操作和异常处理的相关知识:

  • 文本文件和二进制文件的读写

  • JSON文件的读写

  • 异常处理机制

文本文件和二进制文件的读写

Python可以轻松地读写文本文件和二进制文件,我们可以使用内置的open()函数来打开文件并获取文件对象,从而进行读写操作。下面是一些常用的open()函数的参数:

  • file:文件名称和路径

  • mode:打开文件的模式(读、写、追加等)

  • buffering:指定读写过程中的缓存大小

  • encoding:指定编码格式(对于文本文件)

读写文本文件

在Python中,读写文本文件非常容易。我们可以使用open()函数打开文件,然后使用read()readline()readlines()等方法来读取文件中的内容。下面是一些常用的读取文本文件的方法:

read()方法

read()方法可以一次性读取整个文件内容,例如:

with open('file.txt', 'r') as f:
   content = f.read()
   print(content)

readline()方法

readline()方法可以逐行读取文件,例如:

with open('file.txt', 'r') as f:
   line = f.readline()
   while line:
       print(line, end='')
       line = f.readline()

readlines()方法

readlines()方法可以将文件按行读取到一个列表容器中,例如:

with open('file.txt', 'r') as f:
   lines = f.readlines()
   print(lines)

在上面的例子中,readlines()方法返回的是一个包含所有行的列表。

除了读取文件,我们也可以使用write()方法来向文件中写入文本内容。例如:

with open('file.txt', 'w') as f:
   f.write('Hello, world!\\n')
   f.write('This is a test file.')

在上面的例子中,我们使用write()方法向文件中写入了两行文本内容。

读写二进制文件

要读写二进制文件,我们只需要将open()函数的模式参数设置为'rb''wb'即可。例如,下面的代码实现了复制图片文件的功能:

def main():
   try:
       with open('guido.jpg', 'rb') as fs1:
           data = fs1.read()
           print(type(data))  # <class 'bytes'>
       with open('new.jpg', 'wb') as fs2:
           fs2.write(data)
   except FileNotFoundError as e:
       print('指定的文件无法打开.')
   except IOError as e:
       print('读写文件时出现错误.')
   print('程序执行结束.')
if __name__ == '__main__':
   main()

在上面的例子中,我们使用open()函数读取了一张图片,然后使用read()方法将图片数据读入到内存中,最后使用open()函数将图片数据写入到了另一个二进制文件中。

读写JSON文件

在Python中,我们可以将字典、列表等数据以JSON格式保存到文件中。JSON是一种轻量级的数据交换格式,易于阅读和编写。本文将介绍如何使用Python的json模块读写JSON文件。

JSON简介

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式。它是基于JavaScript语言的一个子集,但是它采用了类似于C语言家族的语法。JSON的数据格式是独立于任何编程语言的,因此它很容易被不同的程序和平台使用和解析。JSON格式的数据是一个字符串,它表示了一个结构化的数据对象。

Python中的JSON处理

Python中的json模块可以将Python对象转换为JSON格式的字符串,也可以将JSON格式的字符串转换为Python对象。主要有以下四个函数:

  • json.dump(obj, fp, *, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, cls=None, indent=None, separators=None, default=None, sort_keys=False, **kw):将Python对象obj以JSON格式保存到文件fp中。

  • json.dumps(obj, *, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, cls=None, indent=None, separators=None, default=None, sort_keys=False, **kw):将Python对象obj以JSON格式的字符串返回。

  • json.load(fp, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw):从文件fp中读取JSON格式的数据,并将其转换为Python对象。

  • json.loads(s, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw):将JSON格式的字符串s转换为Python对象。

示例

下面是一个演示如何将字典保存为JSON格式的文件的示例代码:

import json
data = {
   "name": "John",
   "age": 30,
   "city": "New York",
   "pets": ["dog", "cat"]
}
with open("data.json", "w") as f:
   json.dump(data, f)

上述代码将字典data保存为名为data.json的文件。

下面是一个演示如何从JSON格式的文件中读取数据并转换为Python对象的示例代码:

import json
with open("data.json", "r") as f:
   data = json.load(f)
print(data)

上述代码将从名为data.json的文件中读取数据,并将其转换为Python对象。

来源:https://blog.csdn.net/inchat/article/details/129714911

标签:Python,文件操作,异常处理
0
投稿

猜你喜欢

  • 如何安装2019Pycharm最新版本(详细教程)

    2022-09-19 12:20:54
  • Python使用Dijkstra算法实现求解图中最短路径距离问题详解

    2022-07-31 02:40:33
  • 网页内容呈现建议十条

    2007-11-06 13:24:00
  • 视觉设计的一致性与用户体验

    2010-01-06 13:38:00
  • 网易网站设计(思想)

    2009-03-27 17:51:00
  • 解决python xlrd无法读取excel文件的问题

    2022-01-25 10:48:44
  • Python+OpenCV六种实时图像处理详细讲解

    2022-06-14 10:47:27
  • ASP实现数据输入、查询的实例

    2010-05-03 10:48:00
  • python的环境conda简介

    2022-12-24 18:40:30
  • python网络编程学习笔记(四):域名系统

    2021-07-15 10:16:49
  • SQL中自己创建函数 分割字符串

    2008-11-20 16:13:00
  • Python中实现输入一个整数的案例

    2022-05-28 18:42:21
  • python GUI库图形界面开发之PyQt5切换按钮控件QPushButton详细使用方法与实例

    2021-06-13 09:13:14
  • Python离线安装包教程分享

    2023-08-03 18:16:40
  • Python注释、分支结构、循环结构、伪“选择结构”用法实例分析

    2021-01-15 14:45:25
  • Python网页正文转换语音文件的操作方法

    2021-03-26 04:27:30
  • python自动化操作之动态验证码、滑动验证码的降噪和识别

    2023-03-26 02:48:28
  • Python实现导出数据生成excel报表的方法示例

    2021-05-17 16:43:57
  • python将红底证件照转成蓝底的实现方法

    2023-09-25 19:20:57
  • Python基础知识之函数,类,模块

    2022-10-28 05:25:36
  • asp之家 网络编程 m.aspxhome.com