一、概念

文件是指存储在某种长期储存设备上的一段数据,长期存储设备包含:硬盘、U盘、移动硬盘、光盘等。文件的作用是将数据长期保存下来,在需要的时候使用。

二、操作文件的函数、方法

函数

说明

open

打开文件返回文件操作对象

read

将文件内容读取到内存

write

将指定内容写入文件

close

关闭文件

open函数的第一个参数是要打开的文件名(文件名区分大小写)

read方法可以一次性读入并返回文件的所有内容

write方法可以将指定内容一次性写入文件

close方法负责关闭文件

读取文件基本操作:

我们创建一个文本文件hello.txt。

Python入门系列14-文件的基本操作_文件名

# 打开文件
file = open('hello.txt')

# 读取文件
text = file.read()
print(text)

# 关闭文件
file.close()

输出:

hello world

打开文件的方式:

open函数默认以只读的方式打开文件,并且返回文件对象。

语法:

f = open("文件名", "访问方式")

常见的文件访问方式如下图所示:

访问方式

说明

r

以只读方式打开文件。文件的指针将会放在文件的开头,这是默认方式。如果文件不存在抛出异常。

w

以只写的方式打开文件。如果文件存在会被覆盖。如果文件不存在创建新文件

a

以追加方式打开文件。如果该文件已存在,文件指针将会放在文件的结尾。如果文件不存在创建新文件写入

r+

以读写方式打开文件。文件的指针将会放在文件的开头。如果文件不存在,抛出异常

w+

以读写方式打开文件。如果文件存在会被覆盖。如果文件不存在,创建新文件

a+

以读写方式打开文件。如果文件存在文件指针将会放在文件的结尾。如果文件不存在,创建新文件进行写入

写入文件基本操作:

# 打开文件
file = open('hello.txt','a+')

# 写入内容
file.write('今天是个好天气')
file.write('中国')

# 关闭文件
file.close()

输出:

Python入门系列14-文件的基本操作_文件名_02

按行读取文件内容:

read方法默认会把文件的所有内容一次性读取到内存,如果文件太大,对内存的占用会非常严重。

readline方法可以一次读取一行的内容,方法执行后,会把指针移动到下一行,准备再次读取。

代码示例如下:

# 打开大文件
file = open('hello.txt', 'r')

# 写入内容
while True:
    text = file.readline()
    if text:
        print(text, end='')
    else:
        break

# 关闭文件
file.close()

输出:

今天是个好天气中国
hello

三、案例-复制文件

# 打开源文件
file1 = open('hello.txt')
# 目标文件
file2 = open('a.txt', 'w+')

while True:
    text = file1.readline()
    if text:
        file2.write(text)
    else:
        break

print(file2.read())

# 关闭文件
file1.close()
file2.close()

四、文件、目录的操作

常见的文件目录操作函数如下图所示:

函数名

说明

rename

重命名文件

remove

删除文件

listdir

目录列表

mkdir

创建目录

rmdir

删除目录

getcwd

获取当前目录

chdir

修改工作目录

path.isdir

判断是否是文件

import os

# 文件重命名 第一个参数源文件名, 第二个参数目标文件名
os.rename('hello.txt', 'hello.txt')
# 删除文件
os.remove('hello.txt')

# 文件目录列表
print(os.listdir())

五、with..as语句

我们在进行文件操作的时候如果忘记关闭文件资源,会造成资源的浪费,因此需要文件使用后可以自动释放资源,就是用with..as语句,实现自动分配并释放资源。

语法:

with 表达式 as 变量名:
	代码块
	代码块

代码示例如下:

with open('hello.txt','w+') as f:
    print(f.read())

我们不需要调用close方法关闭文件。