在本教程中,我们将学习Python中的不同文件操作。我们将介绍如何使用Python读取文件、写入文件、删除文件等等。所以,让我们立即开始吧。
在Python中处理文件
在上一个教程中,我们使用控制台来获取输入。现在,我们将使用文件来获取输入。这意味着,我们将从文件中读取数据并将数据写入文件。为此,我们需要遵循一些步骤。这些步骤包括:
- 打开文件
- 从文件中获取输入/向文件写入输出
- 关闭文件
我们还将学习一些有用的操作,如复制文件和删除文件。
为什么需要Python中的文件操作?
在处理机器学习问题中使用大型数据集时,使用文件是一种基本需求。由于Python是数据科学中主要使用的语言,您需要熟练掌握Python提供的不同文件操作。
所以,让我们在这里探索一些Python文件操作。
1. 使用open()函数在Python中打开文件
在Python中处理文件的第一步是学习如何打开文件。您可以使用open()
方法打开文件。
Python中的open()函数接受两个参数。第一个是文件名以及完整路径,第二个是文件打开模式。
下面,我列出了一些常见的文件读取模式:
- ‘r’:此模式表示文件仅用于读取
- ‘w’:此模式表示文件仅用于写入。如果包含该名称的文件不存在,它将创建一个新文件
- ‘a’:此模式表示程序的输出将追加到该文件的先前输出中
- ‘r+’:此模式表示文件既可读也可写
此外,对于Windows操作系统,您可以添加‘b’以以二进制方式访问文件。这是因为Windows区分二进制文本文件和普通文本文件。
假设我们将一个名为‘file.txt’的文本文件放在与我们的代码相同的目录中。现在我们想要打开那个文件。
然而,open(filename, mode)函数返回一个文件对象。有了该文件对象,您可以进行进一步的操作。
#directory: /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中写入文件,则需要将文件打开为写入模式。
以下是Python中一些允许您读写文件的函数:
- read():此函数读取整个文件并返回一个字符串
- readline():此函数从文件中读取行并返回字符串。如果调用了第n次,则获取第n行。
- readlines():此函数返回一个列表,其中每个元素是该文件的单行。
- readlines():此函数返回一个列表,其中每个元素是该文件的单行。
- write():此函数将一组固定字符写入文件。
- writelines():此函数将字符串列表写入文件。
- append():此函数将字符串附加到文件,而不是覆盖文件。
让我们以一个示例文件“abc.txt”为例,并使用for循环从文件中读取各行:
#打开文件
text_file = open('/Users/pankaj/abc.txt','r')
#获取行的列表
line_list = text_file.readlines();
#对列表中的每一行,打印该行
for line in line_list:
print(line)
text_file.close() #别忘了关闭文件
输出:
现在,我们知道如何在Python中读取文件了,让我们继续在这里使用writelines()函数执行写操作。
#打开文件
text_file = open('/Users/pankaj/file.txt','w')
#初始化一个空列表
word_list= []
#迭代4次
for i in range (1, 5):
print("Please enter data: ")
line = input() #获取输入
word_list.append(line) #添加到列表中
text_file.writelines(word_list) #向文件写入4个单词
text_file.close() #别忘了关闭文件
输出
3. 使用shutil()方法在Python中复制文件
我们可以使用shutil模块在Python中复制文件。这个实用程序允许我们在不同文件上在Python中执行复制和移动操作。让我们通过一个例子来学习:
import shutil
shutil.copy2('/Users/pankaj/abc.txt', '/Users/pankaj/abc_copy2.txt')
#另一种复制文件的方式
shutil.copyfile('/Users/pankaj/abc.txt', '/Users/pankaj/abc_copyfile.txt')
print("File Copy Done")
4. 使用shutil.os.remove()方法在Python中删除文件
Python的shutil模块提供了remove()方法,用于从文件系统中删除文件。让我们看看如何在Python中执行删除操作。
import shutil
import os
#删除文件的两种方式
shutil.os.remove('/Users/pankaj/abc_copy2.txt')
os.remove('/Users/pankaj/abc_copy2.txt')
5. 使用close()方法在Python中关闭打开的文件
当您在Python中打开文件时,非常重要的是在进行更改后关闭文件。这样可以保存您之前所做的任何更改,将文件从内存中移除,并防止在程序中进一步读取或写入。
在Python中关闭已打开文件的语法:
fileobject.close()
如果我们继续从之前的示例中读取文件,这里是如何关闭文件的:
text_file = open('/Users/pankaj/abc.txt','r')
# 在这里进行一些文件操作
text_file.close()
此外,如果使用with语句块,就可以避免手动关闭文件。一旦执行了with语句块,文件就会被关闭,并且不再可用于读取和写入。
6. Python FileNotFoundError
在Python中使用文件时,经常会遇到FileNotFoundError。通过在创建文件对象时提供完整的文件路径,可以很容易地避免这种情况。
File "/Users/pankaj/Desktop/string1.py", line 2, in <module>
text_file = open('/Users/pankaj/Desktop/abc.txt','r')
FileNotFoundError: [Errno 2] No such file or directory: '/Users/pankaj/Desktop/abc.txt'
要解决FileNotFoundError,只需验证您为文件打开方法提供的路径是否正确即可。
结论
这些是在Python上的文件操作。在Python中,您可以使用许多其他方法来处理文件,包括读取CSV数据等。这里有一篇关于如何使用Pandas模块在Python中读取CSV数据集的文章。
I hope you enjoyed reading the article! Happy learning 🙂
**参考资料:
**
**https://docs.python.org/3/tutorial/inputoutput.html#reading-and-writing-files
Source:
https://www.digitalocean.com/community/tutorials/python-read-file-open-write-delete-copy