Python文件处理:创建、打开、追加、读、写

在Python中,不需要导入外部库来读取和写入文件。Python为创建、写入和读取文件提供了内置的函数。

在本文中,我们将学习

  • 如何创建文本文件
  • 如何将数据附加到文件中
  • 如何读取文件
  • 如何逐行读取文件
  • Python中的文件模式

如何创建文本文件

使用Python,您可以通过使用代码创建一个.文本文件(古鲁99.txt),我们在这里演示了如何做到这一点

第1步)

  • 我们声明变量f来打开一个名为textfile.txt的文件。OPEN采用两个参数,我们要打开的文件和表示我们想对文件执行的权限或操作类型的字符串。
  • 在这里,我们在参数中使用了“w”字母,它指示写和加号,这意味着如果库中不存在文件,它将创建一个文件。
  • “w”旁边的可用选项是“r”表示读,“a”表示附加和加号,意思是如果没有,则创建它。

第二步)

for i in range(10):

f.write(“This is line %d\r\n” % (i+1))

  • 我们有一个for循环,它运行在10个数字的范围内。
  • 使用写函数将数据输入到文件中。
  • 我们想在文件中迭代的输出是“这是行号”,我们用写函数声明它,然后用百分比d(显示整数)声明它。
  • 因此,我们基本上是在输入我们正在写的行号,然后将它放入一个回车和一个新的行字符中。

第3步)

f.close()

  • 这将关闭存储的文件guu99.txt的实例。

下面是代码执行后的结果

当您单击您的文本文件(在本例中为“guu99.txt”)时,它将如下所示

如何将数据附加到文件中

还可以将新文本附加到已经存在的文件或新文件中。

第1步)

f=open(“guru99.txt”, “a+”)

再次,如果您可以在代码中看到加号,它表示如果它不存在,它将创建一个新文件。但是在我们的例子中,我们已经有了这个文件,所以我们不需要创建一个新的文件。

第二步)

for i in range(2):

f.write(“Appended line %d\r\n” % (i+1))

这将以附加模式将数据写入文件。

您可以在“guu99.txt”文件中看到输出。代码的输出是以前的文件附加了新的数据。

如何读取文件

不仅可以从Python创建.txt文件,还可以“读取模式”(R)调用.txt文件。

第1步)以读取模式打开文件

f=open(“guru99.txt”, “r”)

第二步)我们使用代码中的模式函数来检查文件是否处于打开模式。如果是,我们继续前进

if f.mode == ‘r’:

第3步)使用f.read读取文件数据并将其存储在可变内容中

contents =f.read()

第4步)印刷内容

这是输出

如何逐行读取文件

如果数据太大,无法读取,也可以逐行读取.txt文件。此代码将在容易就绪的模式下隔离数据。

当您运行代码时(F1=f.readline()对于逐行读取文件或文档,它将分隔每一行并以可读格式呈现该文件。在我们的例子中,行是短的和可读的,输出将看起来类似于读模式。但是,如果有一个复杂的数据文件是不可读的,这段代码可能是有用的。

Python中的文件模式

这是完整的代码

Python 2示例

def main():

     f= open("guru99.txt","w+")

     #f=open("guru99.txt","a+")

     for i in range(10):

         f.write("This is line %d\r\n" % (i+1))

     f.close()  

     #Open the file back and read the contents

     #f=open("guru99.txt", "r")

     #   if f.mode == 'r':

     #     contents =f.read()

     #     print contents

     #or, readlines reads the individual line into a list

     #fl =f.readlines()

     #for x in fl:

     #print x

if __name__== "__main__":

  main()

Python 3示例

def main():

    f= open("guru99.txt","w+")

    #f=open("guru99.txt","a+")

    for i in range(10):

         f.write("This is line %d\r\n" % (i+1))

    f.close()

    #Open the file back and read the contents

    #f=open("guru99.txt", "r")

    #if f.mode == 'r':

    #   contents =f.read()

    #    print (contents)

    #or, readlines reads the individual line into a list

    #fl =f.readlines()

    #for x in fl:

    #print(x)

if __name__== "__main__":

  main()