不仅⼈的⼤脑会遗忘事情,计算机也会如此,⽐如⼀个程序在运⾏过程中⽤了九⽜⼆⻁之⼒终于计算出了结果,试想⼀下如果不把这些数据存放起来,相⽐重启电脑之后, “哭都没地⽅哭了” 可⻅,在把数据存储起来有做么⼤的价值使⽤⽂件的⽬的: 就是把⼀些存储存放起来,可以让程序下⼀次执⾏的时候直接使⽤,⽽不必重新制作⼀份,省时省⼒ 同样,在操作⽂件的整体过程与使⽤ word 编写⼀份简历的过程是很相似的 在 python ,使⽤ open 函数,可以打开⼀个已经存在的⽂件,或者创建⼀个新⽂件 f = open('test.txt', 'w') r 以只读⽅式打开⽂件。⽂件的指针将会放在⽂件的开头。这是默认模式。 w 打开⼀个⽂件只⽤于写⼊。如果该⽂件已存在则将其覆盖。如果该⽂件不存在,创建新 a 打开⼀个⽂件⽤于追加。如果该⽂件已存在,⽂件指针将会放在⽂件的结尾。也就是 说,新的内容将会被写⼊到已有内容之后。如果该⽂件不存在,创建新⽂件进⾏写⼊。 rb 以⼆进制格式打开⼀个⽂件⽤于只读。⽂件指针将会放在⽂件的开头。这是默认模式。 wb 以⼆进制格式打开⼀个⽂件只⽤于写⼊。如果该⽂件已存在则将其覆盖。如果该⽂件不存在,创建新⽂件。 ab 以⼆进制格式打开⼀个⽂件⽤于追加。如果该⽂件已存在,⽂件指针将会放在⽂件的结尾。也就是说,新的内容将会被写⼊到已有内容之后。如果该⽂件不存在,创建新⽂件进⾏写⼊。 r+ 打开⼀个⽂件⽤于读写。⽂件指针将会放在⽂件的开头。 w+ 打开⼀个⽂件⽤于读写。如果该⽂件已存在则将其覆盖。如果该⽂件不存在,创建新⽂件。 a+ 打开⼀个⽂件⽤于读写。如果该⽂件已存在,⽂件指针将会放在⽂件的结尾。⽂件打开时会是追加模式。如果该⽂件不存在,创建新⽂件⽤于读写。 rb+ 以⼆进制格式打开⼀个⽂件⽤于读写。⽂件指针将会放在⽂件的开头。 wb+ 以⼆进制格式打开⼀个⽂件⽤于读写。如果该⽂件已存在则将其覆盖。如果该⽂件不存在,创建新⽂件。 ab+ 以⼆进制格式打开⼀个⽂件⽤于追加。如果该⽂件已存在,⽂件指针将会放在⽂件的结尾。如果该⽂件不存在,创建新⽂件⽤于读写。 close( ) # 新建⼀个⽂件,⽂件名为 :test.txt f = open('test.txt', 'w') f.close() demo: f = open('test.txt', 'w') f.write('hello world, i am here!') f.close() 如果⽂件不存在那么创建,如果存在那么就先清空,然后写⼊数据 使⽤ read(num) 可以从⽂件中读取数据, num 表示要从⽂件中读取的数据的⻓度(单位是字节),如果没有传⼊ num ,那么就表示读取⽂件中所有的数据 demo: f = open('test.txt', 'r') content = f.read(5) print(content) print("-"*30) content = f.read() print(content) f.close()
如果 open 是打开⼀个⽂件,那么可以不⽤谢打开的模式,即只写 open('test.txt') 如果使⽤读了多次,那么后⾯读取的数据是从上次读完后的位置开始的 就像 read 没有参数时⼀样, readlines 可以按照⾏的⽅式把整个⽂件中的内容进⾏⼀次性读取,并且返回的是⼀个列表,其中每⼀⾏的数据为⼀个元素 #coding=utf-8 f = open('test.txt', 'r') content = f.readlines() print(type(content)) i=1 for temp in content: print("%d:%s"%(i, temp)) i+=1 f.close()
#coding=utf-8 f = open('test.txt', 'r') content = f.readline() print("1:%s"%content) content = f.readline() print("2:%s"%content) f.close() |