通过内建函数open可以方便的打开文件,需要提供文件的绝对路径或者相对路径,可以指定读取文件的方法,读取的文件内容可以按行进行遍历处理。读取完成之后,需要手动关闭文件对象,不然会占用一定的资源。
另一个比较方便的方法是使用with代码块,在代码块执行完成之后,它会自动对资源进行一个释放。
# f = open(r'e:\dir\of\file')
# for line in f:
# print(line)
# f.close()
with open(r'e:dir\of\file') as f:
for line in f:
print(line)
模式 | 描述 |
---|---|
r | 只读模式 |
w | 只写模式,创建新文件(清楚路径下的同名文件中的数据) |
x | 只写模式,创建新文件,但存在同名路径时会创建失败 |
a | 添加到已经存在的文件(如果不存在就创建) |
r+ | 读写模式 |
b | 二进制文件的模式,添加到别的模式中(比如’rb’或’wb’) |
t | 文件的文本模式(自动将字节解码为Unicode)。如果没有指明模式,默认使用此模式,可以添加到别的模式中(例如’rt’或’xt’) |
方法 | 描述 |
---|---|
read([size]) | 将文件数据作为字符串返回,可选参数size控制读取的字节数 |
readlines([size]) | 返回文件中行内容的列表,size参数可选 |
write(str) | 将字符串写入文件 |
writelines(strs) | 将字符串序列写入文件 |
close() | 关闭文件 |
flush() | 将内部I/O缓冲器内容刷新到硬盘 |
seek(pos) | 移动到指定的位置(整数) |
tell() | 返回当前的文件位置,返回值是整数 |
closed | 如果文件已关闭,则为True |
字节与Unicode文件
对于Unicode文件,可以通过添加encoding参数读取Unicode文件。需要注意的是,Unicode文件在移动读取位置时,有可能位于某个Unicode编码中间使得读取报错。