1 读文件
1.1 简单读文件
1 f = open('text', 'r') # f是文件句柄 2 data = f.read() # read方法可以加整型参数,是几就读几个字符 3 print(data) 4 f.close()
1.2 readline()和readlines()
readline():每次读文件中的一句。
readlines():将整个文件中的字符全部读出,并将其存在一个列表里,列表中的每个元素是文件中的一句。
在读大文件时尽量不要用readlines,太占用内存。
1 f = open('text', 'r') 2 a = f.readline() 3 b = f.readline() 4 c = f.readline() 5 d = f.readline() 6 print(a) # my name is Bob 7 print(b) # I am 18 years old 8 print(c) # I like learning 9 print(d) # I have a dog
f = open('text', 'r') lines = f.readlines() print(lines) # ['my name is Bob ', 'I am 18 years old ', 'I like learning ', 'I have a dog']
1.3 迭代器
文件句柄是一个迭代器,可以通过for循环取出迭代器中的值,节约内存,处理效率更高。
1 f = open('text', 'r') 2 for i in f: 3 print(i.strip()) 4 # my name is Bob 5 # I am 18 years old 6 # I like learning 7 # I have a dog
2 写文件
2.1 清理写
1 f = open('text', 'w') 2 f.write('hello world') 3 f.close()
2.2 非清理写
1 f = open('text', 'a') 2 f.write('hello world') 3 f.close()
3 读取和调整光标的位置
1 f = open('text', 'r') 2 print(f.tell()) # 0 3 print(f.read(2)) # he 4 print(f.tell()) # 2 5 f.seek(0) 6 print(f.tell()) # 0
4 将缓存区内容写进磁盘中
1 f = open('text', 'w') 2 f.write('Bob is 32') # 此时文件中并没有写入 3 f.flush() # 将刚写入缓存区的内容写入到磁盘中 4 f.close()
5 文件的操作模式
1 # r+ :从文章起始位置读,从文章最后写 2 # w+ :从光标后一个字符读,在文章最后写,但是在打开文件时清空文档 3 # a+ :从文章最后读,正常追加
6 例题:在任意一行的后面添加字符串,并将文件打印出来
1 with open('text', 'r') as f: 2 num = 0 3 for i in f.readlines(): 4 num += 1 5 if num == 4: 6 i = ''.join([i.strip(), '***']) 7 print(i.strip())
7 例题:修改文件中任意一行
1 with open('text', 'r') as f_read, open('text1', 'w') as f_write: 2 num = 0 # 计数,在符合行数时修改内容 3 for line in f_read: # 遍历f_read中的每行 4 num += 1 # 没遍历一行,计数器加一 5 if num == 4: # 在第四次遍历时,即在第四行时执行if块语句 6 line = 'hello ' # 当在第四行时将文件的内容改为hello 7 f_write.write(line) # 将处理后的所有字符串写入f_write