Python打开文件、文件读写操作、with方式、文件常用函数实例分析

下面为你讲解Python文件读写相关的内容。

Python打开文件

在Python中打开文件有两种常见的方式,分别是使用内置函数open()和使用第三方库pathlib。下面分别进行讲解。

open函数

open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)
  • file:文件路径,可以是相对路径或绝对路径。
  • mode:打开模式,包括读取模式(r)、写入模式(w)、追加模式(a)等。
  • encoding:文件编码格式,默认是None,采用系统默认编码格式。
  • errors:指定编码错误处理方式,例如'ignore'表示忽略错误。
  • newline:指定文件的新行字符,用于读取文件和写入文件时的行分隔符。
  • closefd:Boolean型,表示是否在文件关闭时同时关闭文件描述符(默认为True)。

示例1:使用open函数读取文本文件

try:
    with open("test.txt", "r", encoding="utf-8") as f:
        data = f.read()
        print(data)
except IOError:
    print("打开文件失败!")

示例2:使用open函数写入文本文件

try:
    with open("test.txt", "w", encoding="utf-8") as f:
        f.write("Hello, World!")
except IOError:
    print("写入文件失败!")

pathlib库

pathlib是Python内置的文件路径操作库,提供了Path类,可以方便地进行文件操作。它可以用于检查文件是否存在、读取文件内容、写入、删除等常见的文件操作。

示例3:使用pathlib库读取文件内容

from pathlib import Path

try:
    p = Path("test.txt")
    with p.open("r", encoding="utf-8") as f:
        data = f.read()
        print(data)
except IOError:
    print("打开文件失败!")

示例4:使用pathlib库写入文件内容

from pathlib import Path

try:
    p = Path("test.txt")
    with p.open("w", encoding="utf-8") as f:
        f.write("Hello, World!")
except IOError:
    print("写入文件失败!")

文件读写操作

文件读写是常见的操作,Python提供了多种读写方式。

读文件

  • read():读取文件中的所有内容,返回字符串。如果读取的是二进制文件,返回包含整个文件数据的字节串。
  • readline():读取文件的一行,返回字符串。
  • readlines():读取文件的所有行,返回字符串列表。

示例5:使用read方式读取文件内容

try:
    with open("test.txt", "r", encoding="utf-8") as f:
        data = f.read()
        print(data)
except IOError:
    print("打开文件失败!")

示例6:使用readline方式读取文件内容

try:
    with open("test.txt", "r", encoding="utf-8") as f:
        data = f.readline()
        print(data)
except IOError:
    print("打开文件失败!")

示例7:使用readlines方式读取文件内容

try:
    with open("test.txt", "r", encoding="utf-8") as f:
        data = f.readlines()
        print(data)
except IOError:
    print("打开文件失败!")

写文件

  • write(data):向文件中写入字符串数据。如果文件不存在,则创建文件。
  • writelines(lines):向文件中写入字符串列表。如果文件不存在,则创建文件。

示例8:使用write方式向文件中写入内容

try:
    with open("test.txt", "w", encoding="utf-8") as f:
        f.write("Hello, World!")
except IOError:
    print("写入文件失败!")

示例9:使用writelines方式向文件中写入内容

try:
    with open("test.txt", "w", encoding="utf-8") as f:
        lines = ["Hello, ", "World!"]
        f.writelines(lines)
except IOError:
    print("写入文件失败!")

with方式

Python提供了with语句,可以更方便地管理打开的文件资源,同时自动关闭文件。

with语句的语法:

with open(file_path, "mode") as f:
    # do something

实际上,Python打开文件时会为其分配一个文件描述符,with语句执行过程中将会自动关闭这个文件描述符,无需手动调用close()函数。

示例10:使用with语句读取文件内容

try:
    with open("test.txt", "r", encoding="utf-8") as f:
        data = f.read()
        print(data)
except IOError:
    print("打开文件失败!")

示例11:使用with语句写入文件内容

try:
    with open("test.txt", "w", encoding="utf-8") as f:
        f.write("Hello, World!")
except IOError:
    print("写入文件失败!")

文件常用函数实例分析

Python提供了大量的文件操作函数,下面为你介绍一些常用的函数。

获取文件或目录信息

  • os.path.isfile(path):判断给定路径是否为文件,返回布尔值。
  • os.path.isdir(path):判断给定路径是否为目录,返回布尔值。
  • os.path.exists(path):判断给定路径是否存在,返回布尔值。
  • os.path.getsize(path):获取文件大小,返回字节数。
  • os.path.getatime(path):获取文件的最近访问时间。
  • os.path.getmtime(path):获取文件的最近修改时间。

示例12:获取文件大小

import os

size = os.path.getsize("test.txt")
print(size)

删除文件或目录

  • os.remove(path):删除文件。
  • os.rmdir(path):删除空目录。
  • shutil.rmtree(path):删除目录及其所有子目录和文件。

示例13:删除文件

import os

os.remove("test.txt")

示例14:删除目录

import shutil

shutil.rmtree("test_dir")

改变文件名或移动文件

  • os.rename(src, dst):将文件或目录从src重命名为dst。
  • shutil.move(src, dst):将文件或目录从src移动到dst。

示例15:重命名文件

import os

os.rename("test.txt", "test_rename.txt")

示例16:移动文件

import shutil

shutil.move("test.txt", "./new_dir/test.txt")

以上就是Python文件读写的基础,希望能帮助到你。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python打开文件、文件读写操作、with方式、文件常用函数实例分析 - Python技术站

(0)
上一篇 2023年5月20日
下一篇 2023年5月20日

相关文章

  • Python利用Matplotlib绘图无法显示中文字体的解决方案

    以下是详细讲解“Python利用Matplotlib绘图无法显示中文字体的解决方案”的完整攻略。 问题描述 在使用Python的Matplotlib库进行绘图时,有时候会遇到无法显示中文字体的问题。比如,我们在绘制一个柱状图的时候,想要使用中文作为横轴和纵轴的标签,但是结果出现了乱码或者显示为空。 原因分析 这个问题主要是因为Matplotlib默认不支持中…

    python 2023年5月18日
    00
  • 详解Python中for循环的定义迭代方法

    下面是Python中for循环的完整攻略。 什么是for循环? Python中的for循环是一种迭代结构,它可以轻松地遍历序列和其他可迭代对象的元素。for循环执行数次,每次执行时从可迭代对象中获取一个元素,直到可迭代对象的最后一个元素被处理为止。 for循环语法 for循环的基本语法如下: for 变量 in 可迭代对象: # 执行代码块 其中,变量代表从…

    python 2023年5月14日
    00
  • Python解析Excle文件中的数据方法

    下面是Python解析Excel文件中的数据方法的完整实例教程: 1. 安装依赖库 在Python中解析Excel文件需要使用到openpyxl库,可以通过以下命令进行安装: pip install openpyxl 2. 读取Excel文件 读取Excel文件可以使用openpyxl库中的load_workbook函数。该函数接收Excel文件的路径,然后…

    python 2023年5月13日
    00
  • Python3+Appium安装使用教程

    Python3+Appium安装使用教程 简介 本教程旨在介绍如何在Python3环境下使用Appium自动化测试,包括环境的安装、Appium的配置、测试脚本的编写。 本教程假定您已经对Python语言有一定的了解,并且已经安装了Python3及其相应的开发工具包。如果您对Python语言不熟悉,建议您先学习Python基础教程。 环境的安装 安装Appi…

    python 2023年6月3日
    00
  • python logging多进程多线程输出到同一个日志文件的实战案例

    首先,需要明确 Python 中 logging 模块的基本使用方法和概念。 1. logging 模块 logging 是 Python 提供的一个标准库,用于进行日志记录。可以将日志记录到文件中或者发送到网络中。使用 logging 模块可以: 控制输出日志的级别(DEBUG, INFO, WARNING, ERROR, CRITICAL); 将不同级别…

    python 2023年5月19日
    00
  • python3通过udp实现组播数据的发送和接收操作

    我们来讲解一下“Python3通过UDP实现组播数据的发送和接收操作”的攻略。 什么是组播? 组播(Multicast)是一种将信息发送给一组目标计算机的网络传输方式。它类似于广播,但不同于广播的是,组播只会将信息发送给已经加入了相应组播组的主机而不是向整个子网广播。组播协议支持的范围是一个组播域,它的范围介于单播和广播之间。在组播域中有一个特殊的地址范围,…

    python 2023年6月3日
    00
  • Python中实现对Timestamp和Datetime及UTC时间之间的转换

    下面是详细的攻略: Python中Timestamp、Datetime和UTC时间之间的转换 Timestamp与Datetime之间的转换 在Python中,我们可以将时间表示成Timestamp和Datetime这两种类型。Timestamp是指从1970年1月1日00:00:00开始的秒数,它通常是有符号的整数或浮点数。而Datetime则是一个更易读…

    python 2023年6月2日
    00
  • python选择排序算法实例总结

    选择排序是一种简单但效率较低的排序算法,它的基本思想是每次从未排序的元素中选择最小的元素,然后将其放到已排序的元素末尾。在Python中,我们可以使用以下代码实现选择排序算法: def selection_sort(arr): n = len(arr) for i in range(n): min_idx = i for j in range(i+1, n)…

    python 2023年5月13日
    00
合作推广
合作推广
分享本页
返回顶部