Python 基础学习笔记 6 —— 文件的基本操作


一、概述

一个程序对文件的读写是必不可少的。

Python 自带了一个文件类,内含有有多种方法体,可以很方便地实现对文件的读写操作。


二、打开 & 读取文件

用法举例

在 Python 解释器打开时的目录中创建一个名为 pyfile.txt 的文本文件,然后在里面添加如下内容:

Hello Python!
你好,Python!

Python 其实很简单!
只要有耐心,一定能学好!

接下来用 Python 读取它并把内容打印出来。

#!/usr/bin/env python
# -*- coding: UTF-8 -*-

file = open('pyfile.txt','r')   #以只读的方式打开 pyfile.txt,并创建一个名为 file 的句柄(很多人都把这个叫句柄)

while True:
    line = file.readline() #逐行读取该文件
    if not line: #当该行为空时,表示文件读取完毕
        break   #退出循环
    print(line,end="")

file.close()    #关闭文件

运行结果:

Hello Python!
你好,Python!

Python 其实很简单!
只要有耐心,一定能学好!

三、写入文件

3.1 完全改写文件

用法举例

把刚才的 pyfile.txt 文件改成以下内容:

aaa
111
bbb
222

并验证结果。

#!/usr/bin/env python
# -*- coding: UTF-8 -*-

file = open('pyfile.txt','w')   #以改写的方式打开(不能读哦) pyfile.txt (会清空原文件)

#写入到文件中
file.write('''aaa
111
bbb
222''')
file.close()    #关闭文件

file = open('pyfile.txt','r')   #验证结果(再次以只读的方式打开文件)
while True:
    line = file.readline()
    if not line:
        break
    print(line,end="")

file.close()    #关闭文件

运行结果:

aaa
111
bbb
222

3.2 追加写入文件

用法举例

在刚才的 pyfile.txt 末尾加上以下内容:

ccc
333

并验证结果。

#!/usr/bin/env python
# -*- coding: UTF-8 -*-

file = open('pyfile.txt','a')   #以追加写入的方式打开(不能读哦) pyfile.txt (不会清空原文件)

#追加写入到文件中
file.write('''ccc
333''')
file.close()    #关闭文件

file = open('pyfile.txt','r')   #验证结果(再次以只读的方式打开文件)
while True:
    line = file.readline()
    if not line:
        break
    print(line,end="")

file.close()    #关闭文件

运行结果:

aaa
111
bbb
222ccc  #出现两行叠在一起是由于两段文件的衔接处没有加入换行符引起的(可以在第一次写入末尾的三引号前面换一下行解决此问题)
333

四、文件指针

用法举例

读取刚才的 pyfile.txt 两次,要求使用相同句柄。

#!/usr/bin/env python
# -*- coding: UTF-8 -*-

file = open('pyfile.txt', 'r')  # 以只读的方式打开 pyfile.txt,并创建一个名为 file 的句柄

print('First Read:')
print file.read()  # 读取文件内容
print('')

print('Second Read:')
print file.read()  # 再次读取文件内容,会发现已经读不出来了。那是因为文件指针已经指向了文件末尾
print('')

print('Seek...')
file.seek(0, 0)     # 把文件指针重新指向文件开头
# 在 seek() 中,第一个 0 表示便宜的字节数,第二个 0 表示从文件开头开始算起
print('')

print('Third Read:')
print file.read()   # 再次读取文件内容,成功

file.close()  # 关闭文件

运行结果:

First Read:
aaa
111
bbb
222ccc
333

Second Read:


Seek...

Third Read:
aaa
111
bbb
222ccc
333

五、使用 with … as … 操作文件

with ... as ... 可以看作是一个“文件操作函数”。

with ... as ... 可用于短时间的文件操作,在操作前创建文件句柄,在操作结束后自动关闭文件句柄。

用法举例

使用 with ... as ... 实现第一个例子。

#!/usr/bin/env python
# -*- coding: UTF-8 -*-

with open('pyfile.txt','r') as file:    #定义“文件操作函数”,文件句柄为 file
    while True:
        line = file.readline() #逐行读取该文件
        if not line: #当该行为空时,表示文件读取完毕
         break   #退出循环
        print(line,end="")
#“文件操作函数”执行完毕后,句柄将自动关闭

运行结果:

Hello Python!
你好,Python!

Python 其实很简单!
只要有耐心,一定能学好!

发表评论

电子邮件地址不会被公开。