上一章最后一题的答案:
infors.sort(key=lambda x:x['age'])
print(infors)
--->[{'name': 'laowang', 'age': 23}, {'name': 'ab', 'age': 34}, {'name': 'bf', 'age': 43}]
python基础(三):
文件打开和关闭:
打开:
可以用open函数打开一个已经存在的文件或者创建一个新的文件,
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()
文件读写:
读(read):
我有一个 1.text 的文档,文档里面的内容是
'''Python just let be
I fell in love with you watching Casablanca '''
接下来我要对这个文档进行操作
使用read(num)可以从文件中读取数据,num表示要从文件中读取的数据的长度(单位是字节),如果没有传入num,那么就表示读取文件中所有的数据
f = open('1.txt','r')
Text = f.read(7) #长度为7
print(Text)
f.close()
--->Python
如果使用读了多次,那么后面读取的数据是从上次读完后的位置开始的f = open('1.txt','r')
Text = f.read(7) print(Text) postion = f.tell() #tell()可以查看当前阅读到的位置 print(postion) Text_2 = f.read(4) postion_2 = f.tell() print(Text_2) print(postion_2) f.close()
--->
Python
7
just
11
读(readlines)
readlines可以按照行的方式把整个文件中的内容进行一次性读取,并且返回的是一个列表,其中每一行的数据为一个元素
Text = f.readlines() for i in Text: print(i) f.close()
--->
Python just let be
I fell in love with you watching Casablanca
写(write)
使用write()可以完成向文件写入数据
f = open('test.txt', 'w') f.write('hello world, i am here!') f.close()
文件定位:
获取当前读写的位置:
在读写文件的过程中,如果想知道当前的位置,可以使用tell()来获取
Text = f.read(7) print(Text) postion = f.tell() #tell()可以查看当前阅读到的位置 print(postion) Text_2 = f.read(4) postion_2 = f.tell() print(Text_2) print(postion_2) f.close() ---> Python 7 just 11
定位到某个位置:
如果在读写文件的过程中,需要从另外一个位置进行操作的话,可以使用seek()
seek(offset, from)有2个参数
- offset:偏移量
- from:方向
- 0:表示文件开头
- 1:表示当前位置
- 2:表示文件末尾
1 f = open('1.txt','rb') 2 3 str = f.read(6) 4 postion = f.tell() 5 print(str) 6 print(postion) 7 8 f.seek(-10,2) #from =2 9 str_2 = f.read() 10 print(str_2) 11 f.close()
--->
b'Python'
6
b'Casablanca'
文件和文件夹的相关操作:
重命名:
os模块中的rename()可以完成对文件的重命名操作
rename(需要修改的文件名, 新的文件名)
import os os.rename('1.txt','1_1.txt')
删除:
import os os.remove('1_1.txt')
文件夹操作:
创建文件夹:
os.mkdir('test')
获取当前目录:
os.getcwd()
改变默认目录:
os.chdir('../')
获取目录列表:
os.listdir('../')
删除文件夹:
os.rmdir('test')