Python学习笔记文件读写之文件读写过程
随笔记录方便自己和同路人查阅。
#------------------------------------------------我是可耻的分割线-------------------------------------------
在熟悉了处理文件夹和相对路径后,你就可以指定文件的位置,进行读写。接下来介绍的函数适用于“纯文本文件”只包含基本文本字符,
不包含字体、大小和颜色信息。带有.txt扩展名的文本文件,以及带有.py扩展名的Python脚本文件,都是纯文本文件的例子。它们可以被windos
的notepad或OS X的TextEdit应用打开。你的程序可以轻易地读取纯文本文件的内容,将它们作为普通的字符串值。
“二进制文件”是所有其他文件类型,诸如字处理文档、PDF、图像、电子表格和可执行程序。如果用 Notepad 或 TextEdit 打开一个二进制
文件,它看起来就像乱码。如下图:
读写文件有三个步骤:
(1)调用open()函数,返回一个File对象
(2)调用File对象的read()或write()方法
(3)调用File对象的close()方法,关闭该文件
#------------------------------------------------我是可耻的分割线-------------------------------------------
1、用open()函数打开文件,要用 open()函数打开一个文件,就要向它传递一个字符串路径,表明希望打开的文件。这既可以是绝对路径,
也可以是相对路径。open()函数返回一个 File 对象。
open()函数,示例代码:
#! python 3 # -*- coding:utf-8 -*- # Autor: Li Rong Yang #利用open()函数,打开指定的文件 hello_file = open('C:\\Users\\Administrator\\PycharmProjects\\test\\文件读写\\hello.txt')
使用open()函数,打开文件时如果没有其他参数传递给open()方法,首先要保证该文件和路径已经存在。调用 open()将返回一个 File 对象。File 对象代表计算机中的一个文件,
它只是Python 中另一种类型的值,就像你已熟悉的列表和字典。在前面的例子中,你将 File对象保存在 helloFile 变量中。现在,当你需要读取
或写入该文件,就可以调用helloFile 变量中的 File 对象的方法。
2、read()方法,读取文件内容。既然有了一个 File 对象,就可以开始从它读取内容。如果你希望将整个文件的内容读取为一个字符串值,
就使用 File 对象的 read()方法。
read()方法,示例代码:
#! python 3 # -*- coding:utf-8 -*- # Autor: Li Rong Yang #利用open()函数,打开指定的文件,返回一个File对象 hello_file = open('C:\\Users\\Administrator\\PycharmProjects\\test\\文件读写\\hello.txt') #利用read()方法,读取File对象内容 print(hello_file.read())
运行结果:
打印了hello 换行 world,因为hello.txt中存放的就是hello 换行 world。
如果你将文件的内容看成是单个大字符串,read()方法就返回保存在该文件中的这个字符串。或者,可以使用 readlines()方法,从该文件取得一个字符串的列表。
列表中的每个字符串就是文本中的每一行。
readlines()方法,示例代码:
#利用open()函数,打开指定的文件,返回一个File对象 hello_file = open('C:\\Users\\Administrator\\PycharmProjects\\test\\文件读写\\hello.txt') #利用readlines()方法,读取File对象内容 print(hello_file.readlines())
运行结果:
readline() 方法用于从文件读取整行,包括 "\n" 字符。如果指定了一个非负数的参数,则返回指定大小的字节数,包括 "\n" 字符。
readline() 方法,示例代码:
#! python 3 # -*- coding:utf-8 -*- # Autor: Li Rong Yang #利用open()函数,打开指定的文件,返回一个File对象 hello_file = open('C:\\Users\\Administrator\\PycharmProjects\\test\\文件读写\\hello.txt') #利用readline()方法,读取File对象内容 print(hello_file.readline()) #利用readline()方法,读取File对象执行长度字符串内容 print(hello_file.readline(3))
运行结果:
3、写入文件
Python 允许你将内容写入文件,方式与 print()函数将字符串“写”到屏幕上类似。但是,如果打开文件时用读模式,就不能写入文件。你需要以“写入纯文本模
式”或“添加纯文本模式”打开该文件,或简称为“写模式”和“添加模式”。
写模式将覆写原有的文件,从头开始,就像你用一个新值覆写一个变量的值。将'w'作为第二个参数传递给 open(),以写模式打开该文件。不同的是,添加模式将
在已有文件的末尾添加文本。你可以认为这类似向一个变量中的列表添加内容,而不是完全覆写该变量。将'a'作为第二个参数传递给 open(),以添加模式打开该文件。
如果传递给 open()的文件名不存在,写模式和添加模式都会创建一个新的空文件。在读取或写入文件后,调用 close()方法,然后才能再次打开该文件。
write()方法写模式,示例代码:
#! python 3 # -*- coding:utf-8 -*- # Autor: Li Rong Yang #使用open()方法打开文件,使用w模式 baconFile = open('bacon.txt','w') #write()方法写入文本 baconFile = baconFile.write('hello world!\n') #打印写入的字符串个数 print(baconFile)
运行结果:
写模式,每次运行都会覆盖以前的内容。
write()方法添加模式,示例代码:
#! python 3 # -*- coding:utf-8 -*- # Autor: Li Rong Yang #使用open()方法打开文件,使用w模式 baconFile = open('bacon.txt','a') #write()方法写入文本 baconFile.write('hello world!\n') baconFile.close() baconFile = open('bacon.txt') print(baconFile.read())
运行结果:
添加模式,每次运行会在文件末尾追加写入新内容。