标签:block 保存 返回 文件描述符 lin tar print open start
一. 打开文件
f = open("db","r",encoding="utf8")
例子:用“b”打开文件
1 #用b打开文件 2 with open("db","wb") as f: 3 temp=bytes("张燕",encoding="utf8") 4 print(temp) 5 f.write(temp) 6 with open("db","rb") as f: 7 print(f.read()) 8 9 执行结果: 10 b‘\xe5\xbc\xa0\xe7\x87\x95‘ 11 b‘\xe5\xbc\xa0\xe7\x87\x95‘
二. 操作文件
1 #seek是不受encoding的影响的,seek都是按字节的,如果你有中文,seek(1)会把这个中文劈开 2 with open("db","r+",encoding="utf8") as f: 3 f.seek(3) 4 f.write("flag") 5 6 执行前db内容: 7 ab张燕ijklmnopqrstuvwxyz张杰 8 执行后db内容: 9 ab?flag?ijklmnopqrstuvwxyz张杰 10 11 #tell()获取当前指针的位置,和seek一样也是按字节来算的 12 with open("db","r+",encoding="utf8") as f: 13 print(f.read()) 14 with open("db","r+",encoding="utf8") as f: 15 print(f.read(2)) 16 print(f.tell()) 17 18 执行结果: 19 张燕abcdefghijklmnopqrstuvwxyz 20 张燕 21 6
1 #f.write() 从指针位置开始写,如果指针在文件中间会覆盖对应的字节 2 # 但是如果一旦开始读文件,不管有没有读到文件尾,python规定都会从文件尾开始写 3 with open("db","r+",encoding="utf8") as f: 4 f.seek(2) 5 f.write("张燕") 6 f.seek(0) #主动把指针调到文件开头 7 data = f.read(12) 8 print(data) 9 f.write("张杰") 10 f.seek(0) 11 data = f.read() 12 print(data) 13 14 执行结果: 15 ab张燕ijklmnop 16 ab张燕ijklmnopqrstuvwxyz张杰
1 #f.truncate() 2 #截断文件,会把指针之后的内容全部删除 3 with open("db","r+",encoding="utf8") as f: 4 print(f.read()) 5 f.seek(3) 6 f.truncate() 7 f.seek(0) 8 print(f.read()) 9 10 执行结果: 11 1234567890 12 123
标签:block 保存 返回 文件描述符 lin tar print open start
原文地址:http://www.cnblogs.com/meitangyanyan/p/6424818.html