Python文件操作和管理指南:打开、读取、写入和管理文件

简介: Python文件操作和管理指南:打开、读取、写入和管理文件

文件(File)

通过Python程序来对计算机中的各种文件进行增删改查的操作

I/O(Input / Output)

操作文件的步骤:

  1. 打开文件
  2. 对文件进行各种操作(读、写),然后保存
  3. 关闭文件

打开文件

file_name = 'demo.txt'
file_obj = open(file_name)
print(file_obj)

提示:此处输出的是文件对象的信息。

使用 with … as 语句打开文件

file_name = 'hello'
try:
    with open(file_name) as file_obj :
        print(file_obj.read())
except FileNotFoundError:
    print(f'{file_name} 文件不存在~~')

提示:with … as 语句可以在代码块结束时自动关闭文件。

读取文件内容

file_name = 'demo2.txt'
try:
    with open(file_name, encoding='utf-8') as file_obj:
        content = file_obj.read()
        print(content)
except FileNotFoundError:
    print(f'{file_name} 这个文件不存在!')
# 或者逐行读取文件内容
file_name = 'demo.txt'
try:
    with open(file_name, encoding='utf-8') as file_obj:
        for line in file_obj:
            print(line)
except FileNotFoundError:
    print(f'{file_name} 这个文件不存在!')

读取大文件的方式

file_name = 'demo.txt'
try:
    with open(file_name, encoding='utf-8') as file_obj:
        file_content = ''
        chunk = 100
        while True:
            content = file_obj.read(chunk)
            if not content:
                break
            file_content += content
except FileNotFoundError:
    print(f'{file_name} 这个文件不存在!')
print(file_content)

提示:对于较大的文件,使用循环读取内容,避免一次读取全部内容导致内存泄漏。

逐行读取和读取全部行

import pprint
import os
file_name = 'demo.txt'
with open(file_name, encoding='utf-8') as file_obj:
    for line in file_obj:
        print(line)

或者使用 readline()readlines() 方法:

with open(file_name, encoding='utf-8') as file_obj:
    print(file_obj.readline(), end='')
    print(file_obj.readline())
    print(file_obj.readline())
# 或者
with open(file_name, encoding='utf-8') as file_obj:
    r = file_obj.readlines()
    pprint.pprint(r[0])
    pprint.pprint(r[1])
    pprint.pprint(r[2])

写文件操作

首先我们需要使用 open() 函数打开一个文件并进行操作,之后用 write() 方法向文件中写入内容。

file_name = 'demo5.txt'
with open(file_name , 'x' , encoding='utf-8') as file_obj:
    file_obj.write('aaa\n')
    file_obj.write('bbb\n')
    file_obj.write('ccc\n')
    r = file_obj.write(str(123)+'123123\n')
    r = file_obj.write('今天天气真不错')
    print(r)

文件定位

seek()

seek() 函数用于修改文件读取位置,需要两个参数:

  • 要切换到的位置
  • 计算该位置的方式

该函数有三种计算位置方式:

  • 0 从头计算,默认值
  • 1 从当前位置计算
  • 2 从最后位置开始计算
with open('demo2.txt','rt' , encoding='utf-8') as file_obj:
    file_obj.seek(9)
    print(file_obj.read())
    print('当前读取到了 -->',file_obj.tell())

tell()

使用 tell() 函数查看当前读取的位置。

with open('demo2.txt','rt' , encoding='utf-8') as file_obj:
    file_obj.seek(9)
    print(file_obj.read())
    print('当前读取到了 -->',file_obj.tell())

关闭文件

关闭文件是非常重要的操作,它可以释放操作系统资源并确保文件在使用完毕后被正确关闭。

在 Python 中有几种关闭文件的方法:

  1. 使用 close() 方法:可以直接调用文件对象的 close() 方法来关闭文件。
f = open('filename.txt')
# 使用文件对象进行读写操作
f.close()  # 关闭文件
  1. 使用 with 语句:with 语句会在代码块执行完毕后自动关闭文件,即使发生异常也会正常关闭文件。
with open('filename.txt') as f:
    # 使用文件对象进行读写操作
    # 不需要手动调用 close() 方法来关闭文件

无论使用哪种方式,关闭文件都是一个良好的编程习惯。这样可以避免文件句柄泄漏和资源浪费。

另外,还有一些需要注意的事项:

  • 在使用 with 语句时,不需要手动调用 close() 方法关闭文件。
  • 在使用 close() 方法关闭文件时,要确保在文件操作完成后再关闭文件,避免在文件操作期间关闭文件导致错误。
  • 如果在文件操作期间发生了异常,并且没有正确处理或关闭文件,那么可能会出现文件未关闭的情况。因此,使用 with 语句能更好地处理这种情况。
  • 出于性能考虑,Python 解释器在某些情况下可能会延迟关闭文件。但是,为了保持良好的编程习惯,我们应该始终在使用完文件后主动关闭它们。

总之,关闭文件是一种好的编程习惯,可以确保文件和系统资源的正确释放。建议在代码中始终养成关闭文件的习惯,特别是当文件操作较为复杂或需要长时间打开文件时。

文件管理

使用 os 模块可以进行文件和目录的管理操作。

获取目录结构

使用 os.listdir() 函数获取指定目录下的目录结构。

import os
r = os.listdir()
print(r)

获取当前目录

使用 os.getcwd() 函数获取当前所在的目录。

import os
r = os.getcwd()
print(r)

切换当前所在目录

使用 os.chdir() 函数切换当前所在目录,相当于 cd 命令。

import os
os.chdir('c:/')
r = os.getcwd()
print(r)

创建目录

使用 os.mkdir() 函数在指定路径下创建新的目录。

import os
os.mkdir("aaa")

删除目录

使用 os.rmdir() 函数删除指定路径下的空目录。

import os
os.rmdir('abc')

删除文件

使用 os.remove() 函数删除指定路径下的文件。

os.remove('aa.txt')

重命名文件

使用 os.rename() 函数重命名指定路径下的文件或移动文件。

os.rename('aa.txt','bb.txt')
os.rename('bb.txt','c:/users/lilichao/desktop/bb.txt')

总结

本文介绍了Python中文件的操作和管理。首先,我们学习了如何打开文件,包括使用open()函数和with ... as语句打开文件,在操作完成后正确关闭文件是一个良好的编程习惯。然后,我们讨论了如何读取文件的内容,包括读取整个文件和逐行读取文件。对于大型文件,我们介绍了一种逐块读取文件的方式以避免内存问题。接下来,我们学习了如何进行文件的写操作,包括写入新文件和追加内容到已有文件。我们还研究了文件定位的两个重要方法:seek()tell(),它们可以用来控制和获取文件当前的位置。在文件管理方面,我们了解了如何获取目录结构、获取当前目录、切换当前目录、创建目录、删除目录以及删除和重命名文件。这些文件操作和管理的知识对于日常的文件处理任务非常重要,也是程序员必备的技能。

通过学习本文,读者可以掌握文件操作和管理的基本技巧,能够安全地读取和写入文件,并且能够进行简单的文件和目录管理操作。这将为日常的文件处理需求提供帮助,并提升代码的可读性和可维护性。同时,了解文件操作和管理的基本原理,可以为进一步学习更高级的文件操作和管理技术打下坚实的基础。让我们在Python编程中更加熟练地处理文件!

本文到此结束,谢谢观看!

目录
打赏
0
0
0
0
11
分享
相关文章
解锁文件共享软件背后基于 Python 的二叉搜索树算法密码
文件共享软件在数字化时代扮演着连接全球用户、促进知识与数据交流的重要角色。二叉搜索树作为一种高效的数据结构,通过有序存储和快速检索文件,极大提升了文件共享平台的性能。它依据文件名或时间戳等关键属性排序,支持高效插入、删除和查找操作,显著优化用户体验。本文还展示了用Python实现的简单二叉搜索树代码,帮助理解其工作原理,并展望了该算法在分布式计算和机器学习领域的未来应用前景。
Python中的Paramiko与FTP文件夹及文件检测技巧
通过使用 Paramiko 和 FTP 库,开发者可以方便地检测远程服务器上的文件和文件夹是否存在。Paramiko 提供了通过 SSH 协议进行远程文件管理的能力,而 `ftplib` 则提供了通过 FTP 协议进行文件传输和管理的功能。通过理解和应用这些工具,您可以更加高效地管理和监控远程服务器上的文件系统。
50 20
如何在Python中高效地读写大型文件?
大家好,我是V哥。上一篇介绍了Python文件读写操作,今天聊聊如何高效处理大型文件。主要方法包括:逐行读取、分块读取、内存映射(mmap)、pandas分块处理CSV、numpy处理二进制文件、itertools迭代处理及linecache逐行读取。这些方法能有效节省内存,提升效率。关注威哥爱编程,学习更多Python技巧。
如何使用 Python 进行文件读写操作?
大家好,我是V哥。本文介绍Python中文件读写操作的方法,包括文件读取、写入、追加、二进制模式、JSON、CSV和Pandas模块的使用,以及对象序列化与反序列化。通过这些方法,你可以根据不同的文件类型和需求,灵活选择合适的方式进行操作。希望对正在学习Python的小伙伴们有所帮助。欢迎关注威哥爱编程,全栈路上我们并肩前行。
剖析文件共享工具背后的Python哈希表算法奥秘
在数字化时代,文件共享工具不可或缺。哈希表算法通过将文件名或哈希值映射到存储位置,实现快速检索与高效管理。Python中的哈希表可用于创建简易文件索引,支持快速插入和查找文件路径。哈希表不仅提升了文件定位速度,还优化了存储管理和多节点数据一致性,确保文件共享工具高效运行,满足多用户并发需求,推动文件共享领域向更高效、便捷的方向发展。
Python文件操作(1)
【10月更文挑战第17天】
Python文件操作(1)
如何使用Python将TS文件转换为MP4
本文介绍了如何使用Python和FFmpeg将TS文件转换为MP4文件。首先需要安装Python和FFmpeg,然后通过`subprocess`模块调用FFmpeg命令,实现文件格式的转换。代码示例展示了具体的操作步骤,包括检查文件存在性、构建FFmpeg命令和执行转换过程。
74 7
python操作和解析ppt文件 | python小知识
本文将带你从零开始,了解PPT解析的工具、工作原理以及常用的基本操作,并提供具体的代码示例和必要的说明【10月更文挑战第4天】
678 60
python知识点100篇系列(15)-加密python源代码为pyd文件
【10月更文挑战第5天】为了保护Python源码不被查看,可将其编译成二进制文件(Windows下为.pyd,Linux下为.so)。以Python3.8为例,通过Cython工具,先写好Python代码并加入`# cython: language_level=3`指令,安装easycython库后,使用`easycython *.py`命令编译源文件,最终生成.pyd文件供直接导入使用。
141 3
python知识点100篇系列(15)-加密python源代码为pyd文件

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等