设为首页 加入收藏

TOP

【第八篇】Python的文件(file)操作(一)
2019-09-14 00:55:51 】 浏览:80
Tags:第八篇 Python 文件 file 操作

一、方法介绍

Python open() 方法用于打开一个文件,并返回文件对象,在对文件进行处理过程都需要使用到这个函数,如果该文件无法被打开,会抛出 OSError。

注意:使用 open() 方法一定要保证关闭文件对象,即调用 close() 方法。

1 # open函数的语法格式
2 
3 open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)
4     file: 必需,文件路径(相对或者绝对路径)。
5     mode: 可选,文件打开模式
6     buffering: 设置缓冲
7     errors: 报错级别
8     newline: 区分换行符
9     closefd: 传入的file参数类型

mode的参数有:

模式
描述
r
以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。
w
打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
a
打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
rb
以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。
r+
打开一个文件用于读写。文件指针将会放在文件的开头。先读后写才是安全的
rb+
以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。
w+
打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件
wb+
以二进制格式打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
wb
以二进制格式打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
ab
以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
a+
打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。
ab+
以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。


file中的常用方法:

方法
描述
file.close()
关闭文件。关闭后文件不能再进行读写操作。
file.flush()
刷新文件内部缓冲,直接把内部缓冲区的数据立刻写入文件, 而不是被动的等待输出缓冲区写入。
file.next()
返回文件下一行
file.read([size])
从文件读取指定的字节数,如果未给定或为负则读取所有
file.readline([size])
读取整行,包括 "\n" 字符。
file.readlines([sizehint])
读取所有行并返回列表,若给定sizeint>0,返回总和大约为sizeint
字节的行, 实际读取值可能比sizhint较大, 因为需要填充缓冲区。
file.seek(offset[, whence])
设置文件当前位置
file.tell()
返回文件当前位置。
file.truncate([size])
截取文件,截取的字节通过size指定,默认为当前文件位置。
file.write(str)
将字符串写入文件,没有返回值
file.writelines(sequence)
向文件写入一个序列字符串列表,如果需要换行则要自己加入每行的换行符。

二、文件的操作

2.1 读取文件

2.1.1 read

 1 # 路径有两种:
 2 # 1.相对路径,相对于当前程序所在的文件夹
 3 #    ../ 返回上一层目录
 4 #    相对的是当前程序所在的文件夹
 5 # 2.绝对路径
 6 #   * 从磁盘根目录寻找
 7 #   * 互联网上的绝对路径
 8 
 9 f = open("a.txt", mode="r", encoding="utf-8")
10 
11 # read函数的参数是读取多少个字节,如果不加参数,默认是一次性读取文件的所有内容
12 data = f.read()
13 # 打印读取的文件内容
14 print(data)
15 
16 # 关闭文件
17 f.close()

2.1.2 readlines

就像read没有参数时一样,readlines可以按照行的方式把整个文件中的内容进行一次性读取,并且返回的是一个列表,其中每一行的数据为一个元素。

f = open("a.txt", mode="r", encoding="utf-8")

data = f.readlines()
# 打印读取的文件内容
print(type(data))   # <class 'list'>

# 关闭文件
f.close()

2.1.3 readline 

读取一行数据

f = open("a.txt", mode="r", encoding="utf-8")

# 只读取一行数据
data = f.readline()
# 打印读取的文件内容
print(data)

# 关闭文件
f.close()

2.1.4 读取大文件

f = open("a.txt", mode="r", encoding="utf-8")

# 读取大文件的方法
for line in f:
    print(line)
# 关闭文件
f.close()

对可迭代对象 f,进行迭代遍历:for line in f,会自动地使用缓冲IO(buffered IO)以及内存管理,而不必担心任何大文件的问题。

 2.2 写文件

1 # w 模式写文件会将源文件覆盖
2 f = open("a.txt", mode="w", encoding="utf-8")
3 
4 f.write("aaa")
5 # 关闭
6 f.close()
1 # 追加
2 f = open("a.txt", mode="a", encoding="utf-8")
3 f.write("
首页 上一页 1 2 3 下一页 尾页 1/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇django中使用事务以及接入支付宝.. 下一篇淘淘购物系统 (Python)

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目