Python文件和目录操作详解

下面是对“Python文件和目录操作详解”的完整攻略:

Python文件和目录操作详解

一、文件操作

1.1 打开文件

在 Python 中,我们可以使用内置的 open 函数来操作文件。其语法形式为:

f = open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)

具体参数介绍如下:

  • file:要打开的文件路径(必选参数)。
  • mode:文件的访问模式(可选参数),默认值为 'r'。具体取值如下:
    • r:只读模式,打开文件后只能读取文件内容,不能写入、修改文件。
    • w:写入模式,打开文件后如果文件已经存在,则清空原有内容。如果文件不存在,则创建一个新文件。
    • a:追加模式,打开文件后从文件末尾开始写入。如果文件不存在,则创建一个新文件。
    • x:独占模式,新建一个文件,如果文件已经存在则报错。
    • b:二进制模式,与其他模式连用,例如 rb、wb、ab。
    • +:读写模式,与其他模式连用,例如 r+、w+、a+。
  • buffering:缓冲大小(可选参数),默认值为 -1。
  • encoding:文件编码(可选参数),例如 'utf-8'。
  • errors:编码错误处理方式(可选参数)。
  • newline:换行符(可选参数)。Python 3.x 中 newline 为换行符,而不是 Python 2.x 中的换行符和回车符组合的字符串 '\r\n'。
  • closefd:是否关闭文件描述符(可选参数),默认值为 True。
  • opener:打开文件时使用的自定义函数(可选参数)。

下面演示打开一个文件,并读取文件内容:

# 打开文件,创建文件对象
file = open('test.txt', mode='r', encoding='utf-8')
# 读取文件内容
content = file.read()
print(content)
# 关闭文件
file.close()

1.2 读取文件

打开文件后,我们可以从文件中读取数据。常用的读取文件的方法有以下几种:

  • read([size]):一次性读取 size 个字符或字节。如果不指定 size,则读取整个文件。
  • readline():读取文件的一行内容。
  • readlines():返回文件每一行内容的列表。

有以下示例代码:

# 打开文件,创建文件对象
file = open('test.txt', mode='r', encoding='utf-8')
# 读取文件内容
# 一次性读取整个文件
content = file.read()
print(content)
# 逐行读取文件,返回一个生成器
lines = file.readlines()
for line in lines:
    print(line)
# 关闭文件
file.close()

1.3 创建文件

我们可以使用 open 函数创建文件,如果文件不存在,则会自动创建。如果文件已经存在,则会清空原有内容。

# 创建文件对象,如果文件不存在,则创建一个新文件;如果文件已经存在,则清空原有内容
file = open('test.txt', mode='w', encoding='utf-8')
# 向文件中写入内容
file.write('hello world')
# 关闭文件
file.close()

1.4 写入文件

如果我们想向文件中写入数据,则可以使用以下方法:

  • write(string):将字符串 string 写入文件。
# 创建文件对象,如果文件不存在,则创建一个新文件;如果文件已经存在,则清空原有内容
file = open('test.txt', mode='w', encoding='utf-8')
# 向文件中写入内容
file.write('hello world')
# 关闭文件
file.close()

1.5 删除文件

我们可以使用以下函数删除文件:

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

if os.path.exists('test.txt'):
    os.remove('test.txt')

二、目录操作

2.1 创建目录

我们可以使用以下函数创建目录:

  • os.mkdir(path):创建一个目录,如果该目录已经存在则会抛出异常。
import os

# 在当前目录下创建一个名为 dir 的目录
if not os.path.exists('dir'):
    os.mkdir('dir')

2.2 删除目录

如果我们想删除一个目录,则可以使用以下函数:

  • os.rmdir(path):删除指定目录,只能删除空目录。
import os

# 删除当前目录下名为 dir 的目录
if os.path.exists('dir'):
    os.rmdir('dir')

2.3 列出目录下的文件和目录

我们可以使用以下函数列出指定目录下的文件和目录:

  • os.listdir(path):返回指定目录下所有文件和目录的列表。
import os

# 列出当前目录下的所有文件和目录
files = os.listdir('.')
for f in files:
    print(f)

2.4 递归遍历目录

如果我们需要递归地遍历一个目录以及子目录下的所有文件和目录,则可以使用以下函数:

  • os.walk(path):返回一个生成器,在遍历目录时依次返回当前目录、该目录下的子目录以及该目录下的所有文件,每个元组包含 3 项,分别为当前目录的路径、当前目录下所有子目录的名称列表、当前目录下所有文件的名称列表。
import os

# 递归遍历当前目录以及子目录下的所有文件和目录
for root, dirs, files in os.walk('.'):
    print('当前目录:', root)
    print('当前目录下的子目录:', dirs)
    print('当前目录下的文件:', files)

以上就是 Python 文件和目录操作的详细介绍和示例。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python文件和目录操作详解 - Python技术站

(0)
上一篇 2023年6月2日
下一篇 2023年6月2日

相关文章

  • Python如何实现自带HTTP文件传输服务

    Python如何实现自带HTTP文件传输服务 在Python中,可以使用http.server模块实现自带HTTP文件传输服务。以下是两个示例,介绍了如何使用Python实现自带HTTP文件传输服务。 示例一:使用Python实现简单的HTTP文件传输服务 以下是一个示例,可以使用Python实现简单的HTTP文件传输服务: import http.serv…

    python 2023年5月15日
    00
  • Python 实现微信自动回复的方法

    以下是详细的Python实现微信自动回复的方法攻略: 步骤一:安装必要的Python第三方包 在Python中实现微信自动回复,首先需要使用到itchat这个Python包,通过pip进行安装。 !pip install itchat 步骤二:登录微信 使用itchat包中的login方法登录自己的微信账号。 import itchat itchat.aut…

    python 2023年5月19日
    00
  • 如何在Python中进行多变量正态性测试

    在Python中进行多变量正态性测试,可以使用多种方法,包括使用统计模块scipy.stats中的shapiro函数和它的变体,以及使用矩阵特征值分解等方法。以下是其中两种方法的示例: 方法一:使用shapiro函数进行多变量正态性测试 使用scipy.stats中的shapiro函数,可以测试多个变量是否满足正态分布。下面是一个示例,它使用一个2×3的数据…

    python-answer 2023年3月25日
    00
  • 简单介绍Python中的decode()方法的使用

    下面我来为你详细讲解“简单介绍Python中的decode()方法的使用”。 什么是decode()方法 在Python中,decode()方法是将bytes对象(字节串)转换为字符串的方法。在Python3中,所有字符串都是Unicode编码的,所以使用decode()方法的时候需要指定编码方式,否则会抛出UnicodeDecodeError异常。 dec…

    python 2023年5月31日
    00
  • Python reduce()函数的用法小结

    Python reduce()函数的用法小结 简介 Python reduce() 函数是一个在 functools 模块中的高阶函数,它将一个操作函数作用在一个可迭代的对象上,返回一个最终结果。由于在 Python3 中将其从内置函数移到 functools 中,因此在使用前需要先导入该模块,示例为 from functools import reduce…

    python 2023年6月5日
    00
  • python3格式化字符串 f-string的高级用法(推荐)

    让我们来详细讲解一下Python 3中格式化字符串f-string的高级用法。 格式化字符串f-string的基本用法 首先,我们来回顾一下格式化字符串f-string的基本用法。 在Python 3中,我们可以使用f-string来进行字符串格式化,它的语法格式非常简单,使用一对花括号{}来代表要格式化的变量或者表达式,然后在前面加上字母f,例如: nam…

    python 2023年6月5日
    00
  • 一步步教你用python给女朋友写个微信自动提醒的程序

    本攻略将介绍如何使用Python编写一个微信自动提醒程序,以帮助你提醒女朋友重要的事情。我们将使用itchat库来实现微信的自动登录和消息发送功能。 实现微信自动提醒程序 以下是一个示例代码,用于实现微信自动提醒程序: import itchat import datetime import time def send_reminder(): # 获取当前时…

    python 2023年5月15日
    00
  • 用Python将Excel数据导入到SQL Server的例子

    我可以为您提供详细的讲解。 1. 准备工作 在实现将Excel数据导入到SQLServer之前,我们需要做一些准备工作: 安装Python和相应的依赖库 安装SQLServer的Python包 准备Excel数据文件和SQLServer数据库 其中,安装Python和相应的依赖库可以参考Python官方网站和pip。安装SQLServer的Python包可以…

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