【Python基础】Python文件处理

本文收录于 《Python编程入门》专栏,从零基础开始,分享一些Python编程基础知识,欢迎关注,谢谢!

文章目录

一、前言

​ 在Python中,文件处理是一项非常重要的技能。无论是从文件中读取数据,还是将数据写入文件,Python都提供了简单而强大的内置函数和库来支持这些操作。

​ 本文将详细介绍Python中的文件处理基础,包括文件的打开、读取、写入以及一些高级操作。

  • 什么是Python?

    Python是由荷兰人吉多·范罗苏姆于1990年初设计的一门高级编程语言,该语言应用领域非常广泛,尤其在数据科学、人工智能、游戏开发等领域,它已经成为最受欢迎的程序设计语言之一,非常适合新手学习。

    Python语言标准库官方使用手册:https://docs.python.org/zh-cn/3/library/turtle.html#turtle-methods

  • Python语言有哪些特点?

    1.易于学习:Python有相对较少的关键字,结构简单,和一个明确定义的语法,学习起来更加简单。

    2.易于阅读:Python代码定义的更清晰。

    3.易于维护:Python的成功在于它的源代码是相当容易维护的。

    4.丰富的库:Python的最大的优势之一具有丰富的标准库,并且跨平台的,在UNIX,Windows和Mac兼容很好。

    5.面向对象:Python支持面向对象编程,在"面向对象"的语言中,程序是由数据和功能组合而成的对象构建起来的。

    6.可移植:基于其开放源代码的特性,Python已经被移植(也就是使其工作)到许多平台。

    7.可扩展:如果你需要一段运行很快的关键代码,或者是想要编写一些不愿开放的算法,你可以使用C或C++完成那部分程序,然后从你的Python程序中调用。

    8.可嵌入: 你可以将Python嵌入到C/C++程序,让你的程序的用户获得"脚本化"的能力。

二、打开文件

在Python中,要打开一个文件,我们需要使用内置的open()函数。open()函数需要两个参数:文件名和打开模式。打开模式决定了我们要如何与文件交互。

以下是几个常见的打开模式:

  • 'r':只读模式。打开一个用于读取的文件。该文件必须存在。
  • 'w':写入模式。打开一个用于写入的文件。如果文件不存在,则会创建一个新文件。如果文件已经存在,则会覆盖该文件的内容。
  • 'a':追加模式。打开一个用于写入的文件。如果文件不存在,则会创建一个新文件。如果文件已经存在,则会在文件的末尾追加内容。
  • 'x':独占创建模式。创建一个新文件用于写入。如果文件已经存在,则会引发异常。
  • 'b':二进制模式。该模式以二进制方式打开文件。
  • 't':文本模式(默认模式)。该模式以文本方式打开文件。

下面是一个简单的例子,演示如何以只读模式打开一个文件:

python 复制代码
file = open('example.txt', 'r')

这将打开名为example.txt的文件,并将其保存在名为file的对象中。

请注意,为了防止资源泄漏,我们在完成文件操作后需要关闭文件。可以使用close()方法或使用with语句来自动关闭文件。

使用close()方法关闭文件,示例如下:

python 复制代码
# 打开文件
file = open('example.txt', 'r')
 
# 读取文件内容
content = file.read()
 
# 处理文件内容
print(content)
 
# 关闭文件
file.close()

使用with语句来自动关闭文件,示例如下:

python 复制代码
# 打开文件,该方式打开的文件,处理完后会自动关闭(推荐)
with open('example.txt', 'r') as file:

    # 读取文件内容
    content = file.read()
    
    # 处理文件内容
    print(content)

三、读取文件内容

一旦打开了文件,我们就可以使用read()方法来读取文件的内容。

例如:

python 复制代码
file = open('example.txt', 'r')

# read()读取文件内容
content = file.read()

print(content)

这将读取example.txt文件的内容,并将其打印到控制台中。

请注意,read()方法将读取文件的全部内容,并将其作为一个字符串返回。如果文件很大,则可能会占用大量内存。在这种情况下,我们可以使用readlines()方法逐行读取文件内容,如下:

python 复制代码
file = open('example.txt', 'r')

# readlines()读取文件内容
lines = file.readlines()

for line in lines:
    print(line)

这将逐行读取example.txt文件的内容,并将其打印到控制台中。readlines()方法返回一个包含所有行的列表,每行都是字符串类型。

四、写入文件内容

要写入文件内容,我们可以使用write()方法。例如:

python 复制代码
file = open('example.txt', 'w')

# 写入文件
file.write('Hello, world!')

file.close()

这将创建一个名为example.txt的新文件(如果该文件不存在),并在其中写入字符串"Hello, world!"。

请注意,write()方法不会自动添加换行符,因此如果您需要在每行之间添加换行符,则需要在字符串末尾添加换行符。

最常见的换行符是\n,在Unix和Linux系统中使用,在Windows系统中使用\r\n。

以下是一个简单的例子,演示如何在Python中使用write()方法写入文件并实现换行:

python 复制代码
# 打开文件用于写入
with open('example.txt', 'w') as file:
    # 写入一行
    file.write('这是第一行。\n')
    # 写入另一行
    file.write('这是第二行。\n')

# 文件现在包含:
# 这是第一行。
# 这是第二行。

如果你想要确保你的代码能够在不同操作系统之间工作,可以使用os模块来确定正确的换行符,如下:

python 复制代码
import os

# 打开文件用于写入
with open('example.txt', 'w') as file:
    # 写入一行
    file.write('这是第一行。' + os.linesep)
    # 写入另一行
    file.write('这是第二行。' + os.linesep)

# 文件现在包含:
# 这是第一行。
# 这是第二行。(根据操作系统的不同,换行符可能会有所变化)

使用with语句是一个好习惯,因为它能确保文件在操作完成后正确关闭。

五、高级文件操作

除了基本的读写操作外,Python还提供了一些高级的文件操作方法。

例如,os模块提供了许多与文件和文件夹操作相关的函数。以下是一些常用的os模块函数:

os.remove(path):删除指定路径的文件。

os.rmdir(path):删除指定路径的文件夹。

os.path.exists(path):检查指定路径的文件或文件夹是否存在。

os.makedirs(path):创建多级目录。

使用os模块文件操作示例如下:

python 复制代码
import os
 
# 创建一个新目录
new_dir = 'new_directory'
if not os.path.exists(new_dir):
    os.makedirs(new_dir)
    print(f"Successfully created the directory: {new_dir}")
 
# 在新目录中创建一个文件
new_file_path = os.path.join(new_dir, 'new_file.txt')
with open(new_file_path, 'w') as file:
    file.write("Hello, World!")
print(f"Successfully created the file: {new_file_path}")
 
# 列出当前目录下的所有文件和文件夹
for entry in os.listdir('.'):
    print(entry)
 
# 删除新创建的目录和文件
os.remove(new_file_path)
os.rmdir(new_dir)
print(f"Successfully removed the directory and file: {new_dir}, {new_file_path}")

这段代码展示了如何在Python中使用os模块来进行文件和目录的基本操作,包括创建、写入、读取、列出和删除。代码首先检查指定的目录是否存在,不存在则创建,然后在新目录中创建一个文件,并写入内容。接着列出当前目录下的所有条目,最后删除新创建的目录和文件。

此外,Python还提供了一些非常方便的库,如csv和pickle,可用于处理各种不同格式的文件。例如,csv库可用于读取和写入CSV文件,pickle库可用于序列化和反序列化Python对象。

六、总结

Python的文件处理功能非常强大和灵活。通过内置的open()函数和各种模式,我们可以轻松地读取和写入文件。

此外,Python还提供了许多库和模块,以支持更高级的文件操作。掌握这些基础操作将使我们在处理各种文件相关任务时更加高效。

如果您对文章中内容有疑问,欢迎在评论区进行留言,我会尽量抽时间给您回复。如果文章对您有帮助,欢迎点赞、收藏。您的点赞,是对我最大的支持和鼓励,谢谢 :-)

相关推荐
莫名其妙小饼干5 分钟前
网上球鞋竞拍系统|Java|SSM|VUE| 前后端分离
java·开发语言·maven·mssql
是Dream呀5 分钟前
Python从0到100(七十八):神经网络--从0开始搭建全连接网络和CNN网络
网络·python·神经网络
菜狗woc10 分钟前
opencv-python的简单练习
人工智能·python·opencv
十年一梦实验室14 分钟前
【C++】sophus : sim_details.hpp 实现了矩阵函数 W、其导数,以及其逆 (十七)
开发语言·c++·线性代数·矩阵
最爱番茄味23 分钟前
Python实例之函数基础打卡篇
开发语言·python
程序猿000001号43 分钟前
探索Python的pytest库:简化单元测试的艺术
python·单元测试·pytest
Oneforlove_twoforjob1 小时前
【Java基础面试题033】Java泛型的作用是什么?
java·开发语言
engchina1 小时前
如何在 Python 中忽略烦人的警告?
开发语言·人工智能·python
向宇it1 小时前
【从零开始入门unity游戏开发之——C#篇24】C#面向对象继承——万物之父(object)、装箱和拆箱、sealed 密封类
java·开发语言·unity·c#·游戏引擎
诚丞成2 小时前
计算世界之安生:C++继承的文水和智慧(上)
开发语言·c++