Python文件和目录操作详解

yizhihongxing

下面是对“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中文件操作与异常的处理图文详解

    当我们在Python中进行文件操作和异常处理时,需要掌握一些基本的知识点。本文将详细讲解Python中文件操作和异常处理的相关知识点,并提供示例代码进行说明。 文件操作 开文件 在Python中,使用open()函数打开文件。以下是打开文件的示例代码: f = open(‘file.txt’, ‘r’) 在以上代码中,我们使用open()函数打开一个名为fi…

    python 2023年5月13日
    00
  • Python音频处理库pydub的使用教程详解

    下面我将详细讲解 Python 音频处理库 pydub 的使用教程。主要分为以下几个部分: 简介:介绍 pydub 的功能和特点。 安装:讲解如何安装 pydub。 使用示例:包含基础操作和进阶操作两个部分,每个部分都有详细的示例说明。 1. 简介 Pydub 是一个用 Python 编写的音频处理库,它可以方便地处理许多音频文件,诸如分割、合并、格式转换、…

    python 2023年5月20日
    00
  • Python进程间通信 multiProcessing Queue队列实现详解

    Python进程间通信 multiProcessing Queue队列实现详解 什么是进程间通信 在操作系统中,进程是由操作系统抽象出来的程序执行单元,每个进程与其他进程相互独立,都有独立的地址空间、数据、代码以及系统资源。不同进程之间互相隔离,如果需要在不同的进程之间传递数据,就需要通过进程间通信(IPC)来实现。 Python中有多种方法实现进程间通信,…

    python 2023年5月19日
    00
  • python中cPickle用法例子分享

    下面我就为大家详细讲解一下“Python中cPickle用法例子分享”的完整攻略: 什么是cPickle cPickle是Python中的序列化和反序列化模块,它可以将Python对象转换为二进制流(也称 Serialized)以便于在网络上传输或者存储到本地文件中,通常被用于进行远程调用、进程间通信、Web开发中的Session管理等应用场景中。 不同于P…

    python 2023年6月2日
    00
  • 详解用python写网络爬虫-爬取新浪微博评论

    “详解用python写网络爬虫-爬取新浪微博评论”是一篇介绍如何使用Python实现爬取新浪微博评论的攻略,以下是完整的详解过程: 1.获得Cookie和User-Agent 首先需要获取新浪微博的Cookie和User-Agent,在浏览器中登陆新浪微博账号,按下F12调出控制台,在console中输入 console.log(document.cooki…

    python 2023年5月14日
    00
  • python 制作一个gui界面的翻译工具

    制作一个GUI界面的翻译工具可以分为以下几个步骤: 1. 确定需求 首先,你需要明确你的翻译工具的需求,例如它能够翻译哪些语言,是否需要支持多种翻译引擎等。 2. 选择GUI库 Python中有许多GUI库可供选择,例如Tkinter、PyQt、wxPython等。选择其中一个符合需求的GUI库,如果不确定可以上网查阅相关资料或者进行对比试用。 3. 集成翻…

    python 2023年6月5日
    00
  • python3 sorted 如何实现自定义排序标准

    Python3中的sorted()函数可以按指定的规则对一个可迭代对象进行排序,默认是按照对象元素大小进行排序。但是,有时候我们需要按照自定义的规则进行排序,比如按照一个对象的某个属性进行排序。这时我们可以使用sorted()函数的key参数和cmp参数来实现自定义排序。 key参数实现自定义排序 key参数用来指定一个函数,此函数会在每个元素上执行,将元素…

    python 2023年5月14日
    00
  • Python中遗传算法的问题

    【问题标题】:Problems with genetic algorithm in PythonPython中遗传算法的问题 【发布时间】:2023-04-01 00:55:01 【问题描述】: 我有this 遗传算法应该给我010010010010 或最好的解决方案,突变它工作正常,但是当我尝试添加交叉时,有时它会显示这个错误:’NoneType’ obj…

    Python开发 2023年4月8日
    00
合作推广
合作推广
分享本页
返回顶部