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编程中更加熟练地处理文件!

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

相关文章
|
2月前
|
存储 Python
Python文件操作(1)
【10月更文挑战第17天】
Python文件操作(1)
|
6天前
|
计算机视觉 Python
如何使用Python将TS文件转换为MP4
本文介绍了如何使用Python和FFmpeg将TS文件转换为MP4文件。首先需要安装Python和FFmpeg,然后通过`subprocess`模块调用FFmpeg命令,实现文件格式的转换。代码示例展示了具体的操作步骤,包括检查文件存在性、构建FFmpeg命令和执行转换过程。
29 7
|
2月前
|
自然语言处理 数据处理 Python
python操作和解析ppt文件 | python小知识
本文将带你从零开始,了解PPT解析的工具、工作原理以及常用的基本操作,并提供具体的代码示例和必要的说明【10月更文挑战第4天】
461 60
|
2月前
|
数据采集 存储 Python
Python文件操作2
【10月更文挑战第18天】
Python文件操作2
|
2月前
|
安全 Linux 数据安全/隐私保护
python知识点100篇系列(15)-加密python源代码为pyd文件
【10月更文挑战第5天】为了保护Python源码不被查看,可将其编译成二进制文件(Windows下为.pyd,Linux下为.so)。以Python3.8为例,通过Cython工具,先写好Python代码并加入`# cython: language_level=3`指令,安装easycython库后,使用`easycython *.py`命令编译源文件,最终生成.pyd文件供直接导入使用。
python知识点100篇系列(15)-加密python源代码为pyd文件
|
1月前
|
开发者 Python
Python中__init__.py文件的作用
`__init__.py`文件在Python包管理中扮演着重要角色,通过标识目录为包、初始化包、控制导入行为、支持递归包结构以及定义包的命名空间,`__init__.py`文件为组织和管理Python代码提供了强大支持。理解并正确使用 `__init__.py`文件,可以帮助开发者更好地组织代码,提高代码的可维护性和可读性。
44 2
|
2月前
|
Linux 区块链 Python
Python实用记录(十三):python脚本打包exe文件并运行
这篇文章介绍了如何使用PyInstaller将Python脚本打包成可执行文件(exe),并提供了详细的步骤和注意事项。
80 1
Python实用记录(十三):python脚本打包exe文件并运行
|
1月前
|
中间件 Docker Python
【Azure Function】FTP上传了Python Function文件后,无法在门户页面加载函数的问题
通过FTP上传Python Function至Azure云后,出现函数列表无法加载的问题。经排查,发现是由于`requirements.txt`中的依赖包未被正确安装。解决方法为:在本地安装依赖包到`.python_packages/lib/site-packages`目录,再将该目录内容上传至云上的`wwwroot`目录,并重启应用。最终成功加载函数列表。
|
2月前
|
Java Python
> python知识点100篇系列(19)-使用python下载文件的几种方式
【10月更文挑战第7天】本文介绍了使用Python下载文件的五种方法,包括使用requests、wget、线程池、urllib3和asyncio模块。每种方法适用于不同的场景,如单文件下载、多文件并发下载等,提供了丰富的选择。
|
2月前
|
数据安全/隐私保护 流计算 开发者
python知识点100篇系列(18)-解析m3u8文件的下载视频
【10月更文挑战第6天】m3u8是苹果公司推出的一种视频播放标准,采用UTF-8编码,主要用于记录视频的网络地址。HLS(Http Live Streaming)是苹果公司提出的一种基于HTTP的流媒体传输协议,通过m3u8索引文件按序访问ts文件,实现音视频播放。本文介绍了如何通过浏览器找到m3u8文件,解析m3u8文件获取ts文件地址,下载ts文件并解密(如有必要),最后使用ffmpeg合并ts文件为mp4文件。
下一篇
DataWorks