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

2023-05-19 08:05:00 操作 异常 技巧

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对象。

总结

本文介绍了如何使用Python的json模块读写JSON文件。在Python中,我们可以使用json.dump()json.load()函数将Python对象以JSON格式保存到文件中和从JSON格式的文件中读取数据并转换为Python对象。JSON是一种轻量级的数据交换格式,易于阅读和编写,因此在网络api和文件交换等场景中得到了广泛的应用。

到此这篇关于Python文件操作和异常处理的方法和技巧的文章就介绍到这了,更多相关Python文件操作和异常处理内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!

相关文章