Python文件操作完全指南:掌握读写文件的实用技巧与最佳实践
在这个教程中,我们将介绍Python中的不同文件操作。我们将学习如何使用Python读取文件、写入文件、删除文件等等。所以,让我们立即开始吧。
在Python中处理文件
在之前的教程中,我们使用控制台来进行输入。现在,我们将使用文件来进行输入。也就是说,我们将从文件中读取并写入文件。为了做到这一点,我们需要遵循一些步骤。这些步骤如下:
- 打开一个文件
- 从该文件中读取输入/将输出写入该文件
- 关闭文件
我们还会学习一些有用的操作,比如复制文件和删除文件。
为什么需要在Python中进行文件操作?
在机器学习问题中处理大型数据集时,使用文件是基本需求。由于Python是数据科学中主要使用的语言,你需要熟练掌握Python提供的不同文件操作。
那么,让我们在这里探索一些Python文件操作吧。
使用Python中的open()函数打开一个文件
在Python中处理文件的第一步是学习如何打开一个文件。你可以使用open()方法来打开文件。
Python中的open()函数接受两个参数。第一个参数是文件名和完整路径,第二个参数是文件打开模式。
以下是一些常见的文件读取模式:
- ‘r’:此模式表示文件将以只读方式打开
- ‘w’:此模式表示文件将以只写方式打开。如果不存在该名称的文件,将会创建一个新文件
- ‘a’:此模式表示程序的输出将附加到该文件的先前输出之后
- ‘r+’:此模式表示文件将以读写方式打开
此外,对于Windows操作系统,您可以在文件访问时添加’b’来表示以二进制方式访问。这是因为Windows将二进制文本文件与普通文本文件区分开来。
假设我们的代码与一个名为’file.txt’的文本文件放在同一个目录下。现在我们想要打开这个文件。
open(filename, mode)函数会返回一个文件对象。有了这个文件对象,您可以继续进行进一步的操作。

#目录:/home/imtiaz/code.py
text_file = open('file.txt','r')
#使用完整路径的另一种方法
text_file2 = open('/home/imtiaz/file.txt','r')
print('First Method')
print(text_file)
print('Second Method')
print(text_file2)
以下代码的输出将是什么?
================== RESTART: /home/imtiaz/code.py ==================
First Method
Second Method
>>>
2. 在Python中读写文件
这是文章《Python文件操作 – 使用Python读写文件》的第2部分(共3部分)。
内容片段: Python 提供了多种方法来读写文件,每个函数的行为都不同。在文件操作中,需要注意文件打开模式。要读取文件,需要以读模式打开文件;而要在 Python 中写入文件,则需要以写模式打开文件。
以下是一些Python中可用于读写文件的函数:
- read() : 此函数读取整个文件并返回一个字符串
- readline() : 此函数从文件中读取一行并作为字符串返回。如果第n次调用,则获取第n行。
- readlines() : 此函数返回一个列表,其中每个元素是文件的单行内容。
- write() : 此函数将固定的字符序列写入文件。
- writelines() : 此函数写入一个字符串列表。
- append() : 此函数将字符串追加到文件中,而不是覆盖文件。
让我们以一个示例文件”abc.txt”为例,并通过for循环从文件中逐行读取:
#打开文件
text_file = open('/Users/scdev/abc.txt','r')
#获取行列表
line_list = text_file.readlines();
#对于列表中的每一行,打印该行
for line in line_list:
print(line)
text_file.close() #不要忘记关闭文件
输出结果:
现在我们知道了如何在Python中读取文件,让我们继续使用writelines()函数来执行写操作。
#打开文件
text_file = open('/Users/scdev/file.txt','w')
#初始化一个空列表
word_list= []
#迭代4次
for i in range (1, 5):
print("请输入数据: ")
line = input() #获取输入
word_list.append(line) #追加到列表中
text_file.writelines(word_list) #将4个词写入文件
text_file.close() #不要忘记关闭文件
输出结果
3. 使用shutil()方法在Python中复制文件
这是文章《Python文件操作 – 使用Python读写文件》的第3部分(共3部分)。
我们可以使用shutil模块在Python中复制文件。这个工具使我们能够在Python中对不同的文件进行复制和移动操作。让我们通过一个例子来进行操作。
import shutil
shutil.copy2('/Users/scdev/abc.txt', '/Users/scdev/abc_copy2.txt')
# 另一种复制文件的方法
shutil.copyfile('/Users/scdev/abc.txt', '/Users/scdev/abc_copyfile.txt')
print("文件复制完成")
用shutil.os.remove()方法在Python中删除文件
Python的shutil模块提供了remove()方法来从文件系统中删除文件。让我们看一下如何在Python中执行删除操作。
import shutil
import os
# 两种删除文件的方法
shutil.os.remove('/Users/scdev/abc_copy2.txt')
os.remove('/Users/scdev/abc_copy2.txt')
使用`close()`方法关闭Python中打开的文件
在Python中打开文件后,非常重要的一点是在进行修改后关闭文件。这样可以保存之前所做的任何修改,将文件从内存中移除,并防止程序内进行进一步读写操作。
关闭文件的语法在Python中是:
fileobject.close()
如果我们继续从之前的例子中读取文件,这是如何关闭文件的方式:
text_file = open('/Users/scdev/abc.txt','r')
# 这里是一些文件操作
text_file.close()
此外,如果您使用with语句块,您可以避免手动关闭文件。一旦执行了with语句块,文件就会被自动关闭,无法再进行读取和写入。
6. Python 文件未找到错误
在使用Python处理文件时,经常会遇到FileNotFoundError。可以通过在创建文件对象时提供完整的文件路径来轻松避免这个错误。
File "/Users/scdev/Desktop/string1.py", line 2, in <module>
text_file = open('/Users/scdev/Desktop/abc.txt','r')
FileNotFoundError: [Errno 2] 没有那个文件或目录: '/Users/scdev/Desktop/abc.txt'
要解决FileNotFoundError问题,你只需验证一下你所提及的文件打开方法的路径是否正确。
结论
以上是Python的文件操作。您可以在Python中以多种方式使用文件,包括读取CSV数据等。这是一篇介绍如何使用Pandas模块在Python中读取CSV数据集的文章。
希望你喜欢阅读这篇文章!快乐学习 🙂
参考资料:
https://docs.python.org/3/tutorial/inputoutput.html#reading-and-writing-files