python学习笔记08----文件操作

简介

文本文件的读写主要通过open()所构建的文件对象来实现。

基本格式

f = open(文件名,模式)

最常用的模式有:

  1. “r” # 只读
  2. “w” # 写入 —->如果文件中已经有内容,会把内容抹掉,如果不存在该文件,会新建文件
  3. “a” #追加模式 —–>在已有的文字后添加文字
  4. “b” #二进制模式(还在其他模式中追加使用)—–>一般在处理音频、图像等文件的时候使用
  5. “+” #读/写模式(可在其他模式中追加使用) —–>r+、w+ 可读可写
1
2
3
4
5
6
7
8
9
10
11
12
13
14

f = open('test1.txt', 'w') #创建一个名为f的类文件对象,对test1.txt进行写操作
f.write("大家好,我是王尼玛") #像文件中写入字符串
f.close()

f = open('test1.txt') #如果不写模式,默认为读模式

while True:
line = f.readline() #一次读一行
if len(line) == 0:
break
print (line,end="") #不换行

f.close()

输出

1
大家好,我是王尼玛
1
2
3
4
5
6
7
8
9
10
11
12

f=open("test.txt","w")
f.write("0123456789")
f.seek(4) #跳到第4个字节
f.write("Hello")
f.close()

f=open("test.txt","r")
print(f.read()) #把字符串全部输出
f.seek(2) #跳回到第2个字符
print(f.read(5)) #输出接下来的5个字节
f.close()

输出

1
2
0123Hello9
23Hel

Tips:

1.
以上所讲的仅仅是Python最基本的文件读写功能。更加丰富的文件读写功能由Python的标准库提供。
2.
read() readline()以及readlines()用法
read() 每次读取整个文件,它通常用于将文件内容放到一个字符串变量中。然而 .read() 生成文件内容最直接的字符串表示,但对于连续的面向行的处理,它却是不必要的,并且如果文件大于可用内存,则不可能实现这种处理。

.readline() 和 .readlines() 非常相似。它们都在类似于以下的结构中使用:

1
2
3
fh = open('c:\\autoexec.bat')
for line in fh.readlines():
print(line)

.readline() 和 .readlines() 之间的差异是后者一次读取整个文件,象 .read() 一样。.readlines() 自动将文件内容分析成一个行的列表,该列表可以由 Python 的for … in …结构进行处理。另一方面,.readline() 每次只读取一行,通常比 .readlines() 慢得多。仅当没有足够内存可以一次读取整个文件时,才应该使用 .readline()。(readlines()的输出格式[“I’ll write this message for you\n”, “hehe,that’s will be ok.\n”])