在本教程中,我们将研究 Python 中的不同文件操作。我们将介绍如何使用 Python 读取文件、写入文件、删除文件等等。所以,事不宜迟,让我们开始吧。
在之前的教程中,我们使用了控制台接受输入。现在,我们将使用文件获取输入。这意味着,我们将读取和写入文件。为此,我们需要维护一些步骤。那些是
- 打开文件
- 从该文件获取输入/将输出写入该文件
- 关闭文件
我们还将学习一些有用的操作,例如复制文件和删除文件。
在处理大型数据集时机器学习问题,处理文件是基本必要的。由于 Python 是数据科学的主要使用语言,因此您需要精通 Python 提供的不同文件操作。
那么,让我们在这里探讨一些 Python 文件操作。
在 Python 中处理文件的第一步是学习如何打开文件。您可以使用以下命令打开文件open()
method.
Python 中的 open() 函数接受两个参数。第一个是文件名以及完整路径,第二个是文件打开模式。
下面我列出了一些常见的文件读取模式:
-
‘r’ :此模式表示文件将以只读方式打开
-
‘w’ :此模式表示文件将仅以写入方式打开。如果包含该名称的文件不存在,它将创建一个新文件
-
‘a’ :此模式表示该程序的输出将附加到该文件的先前输出
-
‘r+’ :此模式表示文件将打开以进行读取和写入
此外,对于 Windows 操作系统,您可以附加“b”以访问二进制文件。这是因为 Windows 区分二进制文本文件和常规文本文件。
假设我们将一个文本文件名“file.txt”放置在放置代码的同一目录中。现在我们要打开该文件。
但是,那打开(文件名,模式)函数返回一个文件对象。使用该文件对象,您可以继续进行进一步的操作。
![python open file, python file](https://journaldev.nyc3.digitaloceanspaces.com/2017/07/image-of-file.png)
#directory: /home/imtiaz/code.py
text_file = open('file.txt','r')
#Another method using full location
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
>>>
Python 提供了多种读取和写入文件的方法,其中每个函数的行为都不同。需要注意的一件重要事情是文件操作模式。要读取文件,您需要以读或写模式打开该文件。在Python中写入文件时,您需要以写入模式打开该文件。
以下是 Python 中允许您读取和写入文件的一些函数:
-
read() :该函数读取整个文件并返回一个字符串
-
读行():该函数从该文件中读取行并以字符串形式返回。如果它被调用了 n 次,它会获取第 n 行。
-
读取行():此函数返回一个列表,其中每个元素都是该文件的单行。
-
读取行():此函数返回一个列表,其中每个元素都是该文件的单行。
-
写() :该函数将固定的字符序列写入文件。
-
写行():该函数写入一个字符串列表。
-
追加():此函数将字符串附加到文件而不是覆盖文件。
让我们以文件“abc.txt”为例,并使用 a 从文件中读取各个行for loop:
#open the file
text_file = open('/Users/pankaj/abc.txt','r')
#get the list of line
line_list = text_file.readlines();
#for each line from the list, print the line
for line in line_list:
print(line)
text_file.close() #don't forget to close the file
Output:
![python read file](https://journaldev.nyc3.digitaloceanspaces.com/2017/07/python-read-file.png)
现在,我们知道如何在 Python 中读取文件,让我们继续使用 writelines() 函数执行写入操作。
#open the file
text_file = open('/Users/pankaj/file.txt','w')
#initialize an empty list
word_list= []
#iterate 4 times
for i in range (1, 5):
print("Please enter data: ")
line = input() #take input
word_list.append(line) #append to the list
text_file.writelines(word_list) #write 4 words to the file
text_file.close() #don’t forget to close the file
Output
![python write file](https://journaldev.nyc3.digitaloceanspaces.com/2017/07/python-write-file.png)
我们可以使用关闭模块在 Python 中复制文件。该实用程序允许我们在 Python 中对不同文件执行复制和移动操作。让我们通过一个例子来解决这个问题:
import shutil
shutil.copy2('/Users/pankaj/abc.txt', '/Users/pankaj/abc_copy2.txt')
#another way to copy file
shutil.copyfile('/Users/pankaj/abc.txt', '/Users/pankaj/abc_copyfile.txt')
print("File Copy Done")
Python的shutil模块提供了remove()方法来从文件系统中删除文件。让我们看看如何在 Python 中执行删除操作。
import shutil
import os
#two ways to delete file
shutil.os.remove('/Users/pankaj/abc_copy2.txt')
os.remove('/Users/pankaj/abc_copy2.txt')
当您在 Python 中打开文件时,进行更改后关闭该文件非常重要。这将保存您之前所做的任何更改,从内存中删除文件,并防止在程序中进行任何进一步的读取或写入。
在 Python 中关闭打开的文件的语法:
如果我们继续前面读取文件的示例,则关闭文件的方法如下:
text_file = open('/Users/pankaj/abc.txt','r')
# some file operations here
text_file.close()
此外,如果您使用带块。一旦执行了 with 块,文件就会被关闭,并且不再可用于读写。
在 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 数据等。这是一篇关于如何使用熊猫模块 to 使用 Python 读取 CSV 数据集。
我希望您喜欢阅读这篇文章!快乐学习:)
**参考:
**https://docs.python.org/3/tutorial/inputoutput.html#reading-and-writing-files